我试图在纯javascript中编写wiki查看器,并得到了“Uncaught”--这是在数据被字符串化的行中。字符串没有捕获url字符串。有什么帮助吗?
Name: <input type="text" id = "myText" value="" placeholder="Search for ..." />
<button type="submit">Submit Search</button>
<div id="otpt"></div>
var url;
function winit() {
var endPoint = "https://en.wikipedia.org/w/api.php?";
var searchStr = document.getElementById("myText").value;
var wikiPara = {
// Main Parameters
action: 'query',
format: 'json',
titles: searchStr,
prop: 'revisions',
rvprop: 'content',
callback: 'wikiCall',
}
var txt = "";
for (var i in wikiPara) {
txt += i + "=" + wikiPara[i];
if (i != "callback")
txt += "&";
}
var url = endPoint + txt;
}
function getScript() {
var script = document.createElement('script');
script.setAttribute('type', 'text/javascript');
script.src = url;
document.body.appendChild(script);
}
function getScript() {
var script = document.createElement('script');
script.setAttribute('type', 'text/javascript');
script.src = url;
document.body.appendChild(script);
}
function wikiCall(response) {
document.getElementById("otpt").innerHTML = JSON.stringify(response.query.pages);
}
addEventListener("click", function completeW() {
winit();
getScript();
wikiCall();
}, false);发布于 2018-01-29 03:22:38
function wikiCall(response) {
document.getElementById("otpt").innerHTML = JSON.stringify(response.query.pages);
}在这里,您试图将传递给response的wikiCall对象链接起来--但是,我看到的唯一一个地方是您实际上调用该函数的地方,您没有传递任何东西:
addEventListener("click", function completeW() {
winit();
getScript();
wikiCall(); /* <== Here is the only place wikiCall is invoked and you pass it no arguments. */
}, false);但是,我看不出您实际上是在哪里打电话的,所以我怀疑您在这里的架构可能有一些更大的问题。
https://stackoverflow.com/questions/48493701
复制相似问题