我不明白替换它的原因:
<script src="js/example.js"></script>
用这个:
$.getScript('js/example.js', function() {
alert('Load was performed.');
});
是否有使用jQuery版本的特殊原因?
答案 0 :(得分:8)
我能想到的唯一原因是你在加载脚本时得到了回调。但是,您也可以使用script
标记,使用load
事件(或真正的旧IE,onreadystatechange
)来获取回调。
相比之下,有几个否定这样做,尤其是getScript
受Same Origin Policy约束,而script
标签是不
即使您需要动态加载脚本(并且有几个原因可能需要这样做),坦白说除非您确实需要回调,否则我会说您最好只需添加一个脚本来加载脚本script
代码:
$('head:first').append("<script type='text/javascript' src='js/examplejs'><\/script>");
(注意:您需要在上面的结束标记中使用其他不必要的\
,以避免过早结束此代码存在的脚本标记,如果它位于内联脚本标记中。)
script
标记不受制于同源策略。如果您想要load
回调,那么:
$("<script type='text/javascript' src='js/examplejs'><\/script>")
.on("load", function() {
// loaded
})
.appendTo('head:first');
(正如我所说,对于真正老的IE,你必须做更多的事情,但这些天你不需要处理它们。)
答案 1 :(得分:6)
我可以想到你可能使用jQuery表单的三个原因:
<script>
标记放在文档的 end 的效果,只是没有语法怪异<script>
机制不适用于HTML文档本身不存在的脚本;也就是说,如果包含在<script>
页面上的脚本想要加载脚本,它就没有选择,只能使用基于JavaScript的方法,例如调用jQuery函数。答案 2 :(得分:0)
无需这样做..
如果你想动态加载脚本(需要时,而不是从头开始),你就这样做了
答案 3 :(得分:0)
该脚本可能依赖于jQuery,因此如果它没有加载jQuery,它将阻止浏览器尝试加载它。
jQuery可能无法加载的原因有很多,从简单的网络故障到未被NoScript用户列入白名单的CDN。
答案 4 :(得分:0)
可能在加载脚本时控制?在javascript繁重的页面上,在加载基本内容之前,等待加载一些非必要的东西可能是值得的。