可以运行JavaScript代码加载JSONP而不是脚本标记
Can running JavaScript code load JSONP instead of a script tag?
我刚刚让JSONP在这个伟大问题的答案的帮助下工作。现在,在我的设置中,HTML文件通过脚本标签加载JavaScript:
<script src="js/playlistcontroller.js"></script>
现在我的问题是,这个代码在运行时是否可以触发加载我的JSONP响应?
目标是避免出现
<script src="playlistcontent.jsonp"></script>
在HTMLHead中,但在控制器中做这些事情(如果你好奇的话,它恰好是一个AngularJS控制器)。
这可能吗(从JavaScript加载JavaScript)
完全跨浏览器测试的脚本:
var CFLoad = {
fScript : null,
isFileReady : function ( v ) {
return ( ! v || v == "loaded" || v == "complete" || v == "uninitialized" );
},
js : function(src,cb,attrs) {
var s = document.createElement( "script" ),
done = !1, i;
s.src = src;
s.type = "text/javascript";
for ( i in attrs ) {
s.setAttribute( i, attrs[ i ] );
}
s.onreadystatechange = s.onload = function () {
if ( ! done && CFLoad.isFileReady( s.readyState ) ) {
done = !0;
if(cb) cb(s);
s.onload = s.onreadystatechange = null;
}
};
window.setTimeout(function() {
if( !done) {
done = !0;
if(cb) cb(s,1);
}
}, 5000);
if(this.fScript===null) this.init();
this.fScript.parentNode.insertBefore( s, this.fScript );
},
css : function(href,cb,attrs) {
var l = document.createElement("link"),i;
l.href = href;
l.rel = "stylesheet";
l.type = "text/css";
for ( i in attrs ) {
l.setAttribute( i, attrs[i]);
}
if(this.fScript===null) this.init();
this.fScript.parentNode.insertBefore(l,this.fScript);
if(cb) window.setTimeout(cb, 0);
},
init : function() {
this.fScript = document.getElementsByTagName( "script" )[ 0 ];
}
};
用法
CFLoad.js("http://code.jquery.com/jquery-1.8.3.js", function (script_tag, failed) {
if(!failed) {
CFLoad.js("http://code.jquery.com/ui/1.9.2/jquery-ui.js", function(s, f) {
if(!f) {
alert("Loaded");
js13 = jQuery.noConflict(true);
main();
}
})
}
});
在您的情况下:
CFLoad.js("playlistcontent.jsonp");
相关文章:
- 当包含另一个asp文件时,是否也包含所有引用的样式和脚本页面
- 借助asp.net验证或java脚本对多个文本进行验证
- chrome扩展:尽管运行了at:documentidle,js脚本还是过早启动
- Java脚本时间添加
- 不显示带有本地json文件数据的谷歌地图脚本
- JQuery添加元素需要在我的js之前再次添加JQuery脚本
- 从远程脚本获取用户IP
- 如何根据时间运行不同的脚本
- 如何将字符串值从php页面发送到java脚本页面
- JSONP请求返回结果,但也触发error_callback
- 在localhost Dev Box上测试JSONP请求的最佳方式
- Apache Cordova(Phonegap):是跨站点脚本所需的jsonp
- Javascript中的JSONP:立即删除脚本DOM元素
- $.ajax表单使用JSONP提交给Google文档:“;被解释为脚本但用MIME类型text/html传输的资源”;
- 正在删除“;旧的“;JSONP脚本标记是一种很好的做法
- 首次尝试使用jsonp后,脚本无法工作
- Angular 2 JSONP注入脚本没有调用回调错误
- 从javascript发送JSONP数据到Google Apps脚本
- 可以运行JavaScript代码加载JSONP而不是脚本标记
- 为什么我在 jsonp 请求中看不到 jquery 注入的脚本标签