1

我有这个代码:

function init(){
    if (typeof window.jQuery !== 'function') {
        var link = document.createElement('script');
        link.src = 'http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js';
        document.getElementsByTagName('head')[0].appendChild(link);
    }
}

window.onload = init;

 if (typeof window.jQuery === 'function')  {
    $(document).ready(function(){
        alert(1);
    });
}

我想要做的是如果 jQuery 不存在,则将 jquery 脚本链接添加到头部,然后运行代码。最好的办法是尽快检查头部是否存在jquery,然后添加指向源的链接。但我不知道如何做到这一点?

更新: 另一种方法是使用一个函数:

  function init(){
   if (typeof window.jQuery !== 'function') {
      var link = document.createElement('script');
      link.src = 'http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js';
      document.getElementsByTagName('head')[0].appendChild(link);
      start_code();
   }
   else{
       start_code();
   }
}  
window.onload = init;
function start_code(){
           $(document).ready(function(){
                alert(1);
           });
     }

我基本上可以在加载完所有内容后调用一个函数。但这并不好用。导致 $ is not defined 错误也被抛出

4

1 回答 1

3
function init(){
   if (typeof window.jQuery !== 'function') {
      var link = document.createElement('script');
      link.src = 'http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js';
      document.getElementsByTagName('head')[0].appendChild(link);
   }
}

或使用该HTML5 boilerplate方法

<script>window.jQuery || document.write('<script src="/js/vendor/jquery-1.7.2.min.js"><\/script>')</script>

将此脚本放在页面底部(出于性能目的)。然后,如果你之前需要使用 jQuery 函数,只需看看这个资源:停止支付你的 jQuery 税

因为document.write这里正在创建一个脚本(它是同步的)你所要做的只是

<script>window.jQuery || document.write('<script src="/js/vendor/jquery-1.7.2.min.js"><\/script>')</script>
<script>
    $(document).ready(function(){
        alert(1);
    });
</script>
于 2012-07-03T07:47:46.653 回答