我尝试将jquery加载到页面,如果它没有加载。我在加载后立即运行一些代码。使用下面的代码,我试图在加载jquery时捕获它。
我的代码正确加载了jquery但没有引发onreadystatechange事件。
if(typeof jQuery=='undefined') {
var headTag = document.getElementsByTagName("head")[0];
var jqTag = document.createElement('script');
jqTag.type = 'text/javascript';
jqTag.src = 'http://localhost:8001/jquery-min.js';
headTag.appendChild(jqTag);
jqTag.onreadystatechange= function () {
if (this.readyState == 'complete') {
this.loadWidget(containerId);
}
};
}
else {
this.loadWidget(containerId);
}
如何在加载jquery时捕获它?
答案 0 :(得分:2)
脚本标记在脚本加载时有onload
事件
if (typeof jQuery === 'undefined') {
var headTag = document.getElementsByTagName("head")[0];
var jqTag = document.createElement('script');
jqTag.type = 'text/javascript';
jqTag.onload = function() {
this.loadWidget(containerId);
}
jqTag.src = 'http://localhost:8001/jquery-min.js';
headTag.appendChild(jqTag);
} else {
this.loadWidget(containerId);
}
答案 1 :(得分:1)
在我看来,你的代码太复杂了。
为什么不做HTML5样板文件所做的事情:
<script>window.jQuery || document.write('<script src="js/vendor/jquery-1.10.2.min.js"><\/script>')</script>
如果未检测到window.jQuery对象,则会优雅地故障转移以写出脚本标记以将其包含在本机Javascript中。当然,你可以改变你想要的路径。
希望这有帮助。