页面完全加载后加载jquery

新手上路,请多包涵

我正在寻找一种在页面完全加载后加载 jquery 的方法。

好吧,这里有很多关于它的问题和答案,但都描述了如何在页面或 jquery 完全加载后运行需要 jquery 的脚本。

我正在寻找的是加载页面然后调用 jquery 并在加载 jquery 后调用函数。就像是:

 document.onload=function(){
   var fileref=document.createElement('script');
  fileref.setAttribute("type","text/javascript");
  fileref.setAttribute("src", 'http://code.jquery.com/jquery-1.7.2.min.js');
  //Here I need an event to know that jquery is
  //loaded to run stuff that needs jquery
}

原文由 Ashkan Mobayen Khiabani 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 183
2 个回答

我在 6 年多以前就问过这个问题,我得到的任何答案都有一些缺陷。后来我自己制定了一个解决方案,从那时起我一直在使用多年。现在我又遇到了自己的问题,看到有很多观点,我想分享一下,因为我认为它可能对其他人有所帮助。

这个问题主要发生在主从类型的页面(可以是旧的 .master 和 .aspx 页面)或(asp.net 中的布局和视图)或任何类似情况可能在其他 Web 开发语言上,但是总是有一个主-涉及细节模式。

对于解决方案,我只是在页面的开头添加一个数组:

 <script>var after = [];</script>

任何需要 jQuery 或任何其他将在本节之后运行的脚本的函数,而不是运行它,我只是将它推送到这个数组:

 after.push(function(){
     // code that requires scripts that will load later,
     //might be for example a jQuery selector or ...
});

然后在页面的最后,就在关闭 body 标签之前(当然脚本现在已经加载)我运行(此处命名) after 数组中的所有函数:

 <script>for(var i=0;i<after.length;i++)after[i]();</script>
</body>

我发现这种方式非常容易,简单且完美。

原文由 Ashkan Mobayen Khiabani 发布,翻译遵循 CC BY-SA 4.0 许可协议

试试这个:

  $(document).ready(function() {
// When the document is ready
// Do something
});

原文由 Mr.Turtle 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题