Javascript JSONP脚本回调不工作
我想在使用纯javascript加载脚本后执行回调。我能够正确加载脚本,但我的回调没有启动。我听说使用JSONP我可以做这类事情,但是,我不能完全让它工作。这是我的密码:Javascript JSONP脚本回调不工作,javascript,dom,callback,jsonp,Javascript,Dom,Callback,Jsonp,我想在使用纯javascript加载脚本后执行回调。我能够正确加载脚本,但我的回调没有启动。我听说使用JSONP我可以做这类事情,但是,我不能完全让它工作。这是我的密码: function foo(){ alert('got the data'); } var el = document.createElement("script"); el.setAttribute("src", "//ajax.googleapis.com/ajax/libs/webfont/1.5.0/webfon
function foo(){
alert('got the data');
}
var el = document.createElement("script");
el.setAttribute("src", "//ajax.googleapis.com/ajax/libs/webfont/1.5.0/webfont.js?callback=foo");
document.body.appendChild(el);
JSONP与此无关。您尝试加载的URL已经返回JavaScript,因此您需要做的是将加载事件处理程序绑定到元素:
var el = document.createElement("script");
el.setAttribute("src", "//ajax.googleapis.com/ajax/libs/webfont/1.5.0/webfont.js");
el.onload = function() {
// script loaded
};
document.body.appendChild(el);
另见
当您希望从外部域加载数据时,JSONP被用作Ajax的替代品,但这是服务器必须支持的。如果服务器支持,则不返回(例如)简单JSON:
{"foo": 42}
它将把它包装成callbackName(…)
使用单个函数调用创建JS脚本:
callbackName({"foo": 42});
实际函数名取自GET参数回调