Yuu*_*Yuu 5 javascript json wikipedia-api
这是我目前的代码.它完美地列出了页面标题,但链接都返回'undefined'.
function func(json) {
var e = document.getElementById('wiki');
var i;
for (i=0; i < json.query.allpages.length; i++) {
e.innerHTML += i + ": " + '<a href="' + "http://en.wikipedia.org/wiki/" + json.query.link+ '">' + json.query.allpages[i].title + '</a>' + "<br />";
}
}
function getFromWikipedia() {
var txt = document.getElementById('txt');
var e = document.getElementById('wiki');
var o = document.createElement("script");
o.setAttribute("src", "http://en.wikipedia.org/w/api.php?action=query&list=allpages&format=json&apfrom="+txt.value+"&generator=alllinks&callback=func");
e.appendChild(o);
}
Run Code Online (Sandbox Code Playgroud)
将"&prop = links"和/或"&generator = alllinks"附加到URL似乎不会影响结果.
我想知道我应该在这部分中包含什么:
'<a href="' + json.query.link+ '">'
Run Code Online (Sandbox Code Playgroud)
为了列出页面标题及其各自的链接.我试过"json.query.allpages [i] .pageID"和"json.query.alllinks",但它一直没有用.
编辑: 放弃查找URL并转而使用pageid方法.
解决了这个问题:
e.innerHTML += i + ": " + '<a href="'+ "http://en.wikipedia.org/wiki/?curid="+ json.query.allpages[i].pageid + '">' + json.query.allpages[i].title + '</a>' + "<br />";
Run Code Online (Sandbox Code Playgroud)
您可以直接使用 pageid 创建链接:
function func(json) {
var e = document.getElementById('wiki');
var i;
for (i=0; i < json.query.allpages.length; i++) {
e.innerHTML += i + ": " + '<a href="' + "http://en.wikipedia.org/?curid=" + json.query.allpages[i].pageid+ '">' + json.query.allpages[i].title + '</a>' + "<br />";
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9497 次 |
| 最近记录: |