如何检测jquery是否已使用javascript完成加载

时间:2014-01-13 19:07:13

标签: javascript jquery

  function downloadJSAtOnload() {
 var element = document.createElement("script");
 element.src = "//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js";
 document.body.appendChild(element);
 }

 if (window.addEventListener)
 window.addEventListener("load", downloadJSAtOnload, false);
 else if (window.attachEvent)
 window.attachEvent("onload", downloadJSAtOnload);
 else window.onload = downloadJSAtOnload;

好的,我正在使用googles tip来推迟加载jQuery并修复任何Render-blocking问题。

如果blocking external script during parsing正在加载jQuery或任何其他large javascript files不需要呈现上方折叠区域,则会出现此问题。因此,使用上面的代码,问题是固定的。但我有一个问题,我有运行$(document).ready()的代码,但它因为jQuery尚未加载而导致错误。

如何判断jQuery是否已完成加载?

1 个答案:

答案 0 :(得分:1)

一种选择是将脚本标记放在正文的末尾,或者:

(function() {
  function getScript(url,success){
    var script=document.createElement('script');
    script.src=url;
    var head=document.getElementsByTagName('head')[0],
        done=false;
    script.onload=script.onreadystatechange = function(){
      if ( !done && (!this.readyState || this.readyState == 'loaded' || this.readyState == 'complete') ) {
        done=true;
        success();
        script.onload = script.onreadystatechange = null;
        head.removeChild(script);
      }
    };
    head.appendChild(script);
  }
    getScript('http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js',function(){
        // YOUR CODE GOES HERE AND IS EXECUTED AFTER JQUERY LOADS
    });
})();

从这个回答:https://stackoverflow.com/a/5853358/1766140