我想在WordPress页面中请求JSON

时间:2010-06-10 21:08:24

标签: javascript json wordpress

在过去的几个小时里,我一直在尝试在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

1 个答案:

答案 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"
    }
});

...所以上面的代码应该适合你。