<script src="myscript.js" type="text/javascript"></script>
<script type="text/javascript">testfunction("hello");</script>
内myscript.js:
if(!window.jQuery)
{
var script = document.createElement('script');
script.type = "text/javascript";
script.src = 'jquery-1.9.0.min.js';
document.getElementsByTagName('head')[0].appendChild(script);
}
function testfunction(str) {
$(document).ready(function() {
alert(str);
});
}
当然不需要对当前testfunction的jQuery,但它将需要。使用这种方法,jQuery被下载,但在调用testfunction()时未载入浏览器(Uncaught ReferenceError:$未定义)。
我能做的是在我的JS加载之前在不同的脚本中加载jQuery。在这种情况下,它会起作用,但我会有三种不同的脚本,而且我认为这看起来不够高雅。
有没有其他办法可以达到这个目的?
谢谢!
只需先用jQuery添加脚本标签,然后依赖jQuery的脚本,它应该在没有任何欺骗的情况下开箱即用? – adeneo 2013-03-05 17:21:11
只需添加脚本“正常”的方式。它比任何动态加载它都要优雅得多。 – JJJ 2013-03-05 17:22:34
我不想为用户加载jQuery两次(这是一个嵌入到另一个网页的JS,这对我来说是失控的,这就是为什么我要检查网页是否强制用户加载jQuery) 。 – Jonhas 2013-03-05 17:24:51