我不明白替换它的原因:
<script src="js/example.js"></script>
用这个:
$.getScript('js/example.js', function() {
alert('Load was performed.');
});
是否有使用 jQuery 版本的特殊原因?
最佳答案
我能想到的唯一原因是你在加载脚本时得到了回调。但是你也可以使用 script
标签,通过使用 load
事件(或者在非常老的 IE 上,onreadystatechange
)来获得回调。
相比之下,这样做有几个负面因素,尤其是 getScript
受制于 Same Origin Policy ,而 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,您要做的不止于此,但现在您不应该需要处理它们。)
关于javascript - 为什么调用 $.getScript 而不是直接使用 <script> 标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4392884/