我在博客上添加了最近的视频小工具。在那个小部件我应该添加这一行
<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
答案 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是动态服务器端。