这个javascript做什么?

时间:2010-04-06 18:13:48

标签: javascript json

我在博客上添加了最近的视频小工具。在那个小部件我应该添加这一行

<script src="/feeds/posts/default?orderby=published&alt=json-in-script&callback=showrecentpostswiththumbs">

另外,我添加了另一个脚本,其中包含 showrecentpostswiththumbs [在回调中使用]的方法。请告诉我上面的语法是做什么的?

修改 在Lord的评论之后:)

实际上,我的博客托管在 blogspot.com 上。因此,从这个角度来看,如果您将 / feeds / posts / default?orderby = published&amp; alt = json-in-script 附加到任何博客网址,它将生成一些代码。我只是想知道它做了什么?以及回调参数中使用的方法会发生什么变化[无论回调方法的定义是什么:)]。

例如: http://googleblog.blogspot.com / feeds / posts / default?orderby =已发布&amp; alt = json-in-script

4 个答案:

答案 0 :(得分:3)

根据您发布的内容无法判断,但网址中的参数命名建议 JSONP

JSONP的基础是通过在函数调用中包含其他裸JSON对象来允许跨域AJAX调用,以便结果可以作为脚本执行。

JSON代码:

function getJSON(url) {
    var xhr = new XHR(url); // pseudocode
    xhr.onsuccess = callback;
    xhr.send();
}

function callback(data) {}

JSON回复:

{ "items" : [1, 5, 7] }

等效的JSONP代码:

function getJSONP(url) {
    var script = document.createElement("script");
    script.src = url + "&callback=callback");
    script.type = "text/javascript";
    document.body.appendChild(script);
}

function callback(data) {}

JSONP回复:

callback({ "items" : [1, 5, 7] })

修改

它是JSONP。比较以下三个请求的结果:

第一个以原始JSON的形式返回Feed,第二个以JSONP的形式返回默认的回调名称,第三个使用提供的回调函数名称将其作为JSONP返回。

答案 1 :(得分:1)

据说这个脚本返回一个包含如下内容的脚本:

showrecentpostswiththumbs({ /* some JSON object */ });

具有函数showrecentpostswiththumbs的其他脚本。该函数可能用于接收JSON对象并使用它进行一些处理。

答案 2 :(得分:0)

它不是脚本而是外部脚本文件的链接,因为您使用的是相对路径,我们无法看到实际的脚本。

答案 3 :(得分:0)

<script type="text/javascript" src="myscripts.js"></script>

src属性指定外部脚本文件的URL 在您的情况下,js是动态服务器端。