检测jquery是否载入完毕,并动态载入jQuery并在jQ的环境下执行代码

嗯,很绕口的标题,这段代码源于这样一种需求:在类似『JS调用』的应用中需要确保一些JS在jQ的环境下执行,但通常的<script>包含jQ会让js调用代码变成2个<script>,且如果目标页面已经载入了jQ的情况下将导致资源浪费。
这段代码会检测当前JS是否已经有了jQ环境(标准的$形式),如果没有,动态载入jQuery(从googleapi处)、等待加载完毕再执行main回调,如果已经有了jQ环境,直接执行main回调
原谅我把代码放到Continue Reading……

/*
动态加载jQuery并等待载入完毕后回调main
Author:McFog
*/
_unique_main = function() {
        //maincode with jquery support
}//end of main
if(typeof $ != 'function' || typeof $().jquery != 'string') {
        _unique_doc = document.getElementsByTagName('head')[0];
        _unique_js = document.createElement('script');
        _unique_js.setAttribute('type', 'text/javascript');
        _unique_js.setAttribute('src', "http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js");
        _unique_doc.appendChild(_unique_js);
        _unique_try2go = function() {
                if(typeof $ == 'function' && typeof $().jquery == 'string') {
                        clearInterval(_unique_mainIntv);
                        _unique_main();
                }
        }
        var _unique_mainIntv = setInterval(_unique_try2go, 300);
} else {
        _unique_main();
}

留下评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注

8 + 2 =