在过去的几个小时里,我一直在尝试在WordPress博客上设置此http://code.google.com/apis/books/docs/dynamic-links.html。 Google的API会发回JSON响应(应该将其“放入”_GBSBookInfo变量中)。但是,该变量永远不会被分配,所以我的javascript回调函数会爆炸,说变量不存在。到目前为止,我的所有javascript都在WordPress标题中。
我在WordPress之外尝试了这个,它运行正常。
这是静态页面:
<script src="http://books.google.com/books?bibkeys=0307346609&jscmd=viewapi&callback=response_handler">
这是处理程序:
function response_handler(data) {
var bookInfo = _GBSBookInfo["0307346609"]; // the var that doesn't exist
document.getElementById("test123").innerHTML = bookInfo.thumbnail_url;
}
感谢您提前获得任何帮助,WordPress因限制太多而非常令人沮丧!如果我做任何愚蠢的事情请说出来,我是一个新的javascript程序员。
编辑:
到目前为止,我已经使用了firebug来确定问题:_GBSBookInfo变量永远不会被“创建”或“存在”。我不确定javascript在这个级别是如何工作的。希望这会有所帮助。
错误:
错误:未定义_GBSBookInfo 行:79
答案 0 :(得分:1)
尝试将_GSBookInfo
替换为data
,如下所示:
function response_handler (data) {
var bookInfo = data["0307346609"];
document.getElementById("test123").innerHTML = bookInfo.thumbnail_url;
}
根据您的帖子,Google会返回此信息:
response_handler({
"0307346609": {
"bib_key":"0307346609",
....
"thumbnail_url":"http://bks2.books.google.com/books?somethumbnailstuff"
}
});
...所以上面的代码应该适合你。