【发布时间】:2011-07-21 17:11:56
【问题描述】:
我有一个依赖于 jQuery 的 JS 脚本。
我想检查 jQuery,如果它没有加载/可用,我自己添加它,等待它加载,然后定义我的脚本类。
我目前使用的代码:
// load jQuery if not loaded yet
if (typeof (jQuery) == 'undefined') {
var fileref = document.createElement('script');
fileref.setAttribute("type", "text/javascript");
fileref.setAttribute("src", 'http://code.jquery.com/jquery-1.4.4.min.js');
document.getElementsByTagName('body')[0].appendChild(fileref);
(ready = function() {
if ( typeof (jQuery) == 'undefined' || !jQuery) {
return setTimeout( ready, 1 );
} else {
// jQuery loaded and ready
jQuery.noConflict();
}
})();
}
// … class definition follows
var MView = function() …
现在,使用 FireFox 4(我认为它之前确实可以工作,或者执行速度太慢),即使我仍然想等待 jQuery,它也会继续执行脚本。递归 setTimeout 是非阻塞的。
我该如何解决这个问题?使 setTimeout 阻塞?使用其他方法?有没有更好的办法?有办法吗?
该类应该是全局范围的,因此可以在包含此脚本文件的页面上使用。
【问题讨论】:
标签: javascript