英文:
Outsourcing jQuery request on solr in external javascript
问题
以下是翻译好的内容:
内联代码的目标是将其外包到外部的 JavaScript 文件中。内联代码如下,并且可以正常运行。
<script type="text/javascript">
$.getJSON('../servlets/solr/select?q=mods.genre:issue_a&amp;state:published&amp;rows=1&amp;
fl=returnId,id,search_result_link_text,parentLinkText,mods.title&amp;sort=modified
desc&amp;wt=json',
function (data) {
$(data.response.docs).each(function(i, doc){
let ausgabe = "Ausgabe: ";
let titelmain = doc['search_result_link_text'];
let titelall = doc['mods.title'];
for (let i=0, item; item=titelall[i]; i++) {
if (item.indexOf(titelmain)>=0) {
titelall.splice(i,1);
}
}
let titel = titelall.join(' ' + '|' + ' ');
$('#periodicals').append($('<div class="modified"></div>')
.append('<p class="lastmod-p interline text-content">' +
'<span class="fa fa-arrow-right text-info" />' + ' ' +
'<span style="font-weight:bold">' + (doc['parentLinkText']) +
'</span>' + '<br/>' + '<a class="navbar-link" style="font-weight:bold" href="../receive/'+doc['returnId']+'">' + doc['search_result_link_text'] + '</a>' + '<br/>' + titel + '</p>' + '<p/>')
);
});
});
</script>
外部 JavaScript 文件(new.js)如下所示。它存储在调用它的 HTML(index.html)文件相同的文件夹中。
$(document).ready(function(){
jQuery.getJSON('http://localhost:8282/mir/servlets/solr/select?q=mods.genre:journal&amp;state:published&amp;rows=2&amp;fl=id,search_result_link_text,mods.title,mods.title.main,sb_amt,sb_ort&amp;sort=modified desc&amp;wt=json',
function (data) {
$(data.response.docs).each(function(i, doc){
let amt = doc['sb_amt'] ? doc['sb_amt'] : ' ';
let ort = doc['sb_ort'] ? doc['sb_ort'] : ' ';
let alletitel = doc['mods.title'];
let titel = alletitel.slice(1);
titel = titel.join(' ' + '|' + ' ');
let meta = [titel,amt,ort];
let text = meta.join(' ' + '|' + ' ');
$('#periodicals').append($('<div class="modified"></div>')
.append('<p class="lastmod-p interline text-content">' +
'<a class="navbar-link" style="font-weight:bold" href="../receive/'+doc['id']+'">' + doc['search_result_link_text'] + '</a>' + '<br/>' + text + '</p>')
);
});
});
alert('New Documents');
});
我添加了一个提示框以确保外部 JavaScript 被正确解析。提示框文本正确弹出,但没有显示任何数据。在我的 HTML 代码中,我有这样的内容:
<script src="new.js"></script>
<div class="col-md-4">
<h4 class="text-dark font-weight-bold" style="">PERIODICALS</h4>
<div id="periodicals"></div>
<a style="vertical-align:top" href="../servlets/solr/select?q=mods.genre:journal&amp;
state:published&amp;sort=modified desc"></a>
</div>
如有其他问题,请随时问我。
英文:
I am trying to outsource my inline javascript into an external one. The inline code looks like this and it works fine.
<script type="text/javascript">
$.getJSON('../servlets/solr/select?q=mods.genre:issue_a&amp;state:published&amp;rows=1&amp;
fl=returnId,id,search_result_link_text,parentLinkText,mods.title&amp;sort=modified
desc&amp;wt=json',
function (data) {
$(data.response.docs).each(function(i, doc){
let ausgabe = "Ausgabe: ";
let titelmain = doc['search_result_link_text'];
let titelall = doc['mods.title'];
for (let i=0, item; item=titelall[i]; i++) {
if (item.indexOf(titelmain)>=0) {
titelall.splice(i,1);
}
}
let titel = titelall.join('&#160;' + '&#x7C;' + '&#160;');
$('#periodicals').append($('<div class="modified"></div>')
.append('<p class="lastmod-p interline text-content">' +
'<span class="fa fa-arrow-right text-info" />' + '&#160;' +
'<span style="font-weight:bold">' + (doc['parentLinkText']) +
'</span>' + '<br/>' + '<a class="navbar-link" style="font-weight:bold" href="../receive/'+doc['returnId']+'">' + doc['search_result_link_text'] + '</a>' + '<br/>' + titel + '</p>' + '<p/>')
);
});
});
</script>
The external javascript (new.js) looks like this.
It is stored inside the same folder as the html (index.html) invoking it.
$(document).ready(function(){
jQuery.getJSON('http://localhost:8282/mir/servlets/solr/select?q=mods.genre:journal&amp;state:published&amp;rows=2&amp;fl=id,search_result_link_text,mods.title,mods.title.main,sb_amt,sb_ort&amp;sort=modified desc&amp;wt=json',
function (data) {
$(data.response.docs).each(function(i, doc){
let amt = doc['sb_amt'] ? doc['sb_amt'] : '&#160;';
let ort = doc['sb_ort'] ? doc['sb_ort'] : '&#160;';
let alletitel = doc['mods.title'];
let titel = alletitel.slice(1);
titel = titel.join('&#160;' + '&#x7C;' + '&#160;');
let meta = [titel,amt,ort];
let text = meta.join('&#160;' + '&#x7C;' + '&#160;');
$('#periodicals').append($('<div class="modified"></div>')
.append('<p class="lastmod-p interline text-content">' +
'<a class="navbar-link" style="font-weight:bold" href="../receive/'+doc['id']+'">' + doc['search_result_link_text'] + '</a>' + '<br/>' + text + '</p>')
);
});
});
alert('New Documents');
});
I added alert to be sure that the external javascript is beeing resolved.
The alert text pops up correctly but there is no data displayed.
In my HTML Code I have this:
<script src="new.js"></script>
<div class="col-md-4">
<h4 class="text-dark font-weight-bold" style="">PERIODICALS</h4>
<div id="periodicals"></div>
<a style="vertical-align:top" href="../servlets/solr/select?q=mods.genre:journal&amp;
state:published&amp;sort=modified desc"></a>
</div>
专注分享java语言的经验与见解,让所有开发者获益!
评论