繁体   English   中英

如何使JavaScript在页面加载后加载-尝试了所有解决方案

[英]How to make JavaScript to load after page loading - tried all solutions

我的网站出现问题-http: //toppages.co.uk (使用CakePHP框架构建),我想在页面加载完成后加载javascript(Google PageSpeed Insights建议),因此我将整个JavaScript移至页脚。 然后,在进行了一些测试之后,我发现将JavaScript放置到页脚时无法正常工作-有时加载,但有时不加载。

我尝试了所有可能的解决方案-首先使用: document.onload = function.. ,然后尝试: <body onload="script();"> ,之后尝试使用"async"功能异步加载javascript-记号帮助。 到目前为止,我还没有找到一种使其工作的方法。 您是否知道导致该问题的原因以及如何解决?

尝试

document.addEventListener('DOMContentLoaded', function(){
    // code here
});

显然,在IE7中有没有什么好办法说,但这里是一个黑客,发现这里

if (document.all && !window.opera){ //Crude test for IE
//Define a "blank" external JavaScript tag
  document.write('<script type="text/javascript" id="contentloadtag" defer="defer" src="javascript:void(0)"><\/script>')
  var contentloadtag=document.getElementById("contentloadtag")
  contentloadtag.onreadystatechange=function(){
    if (this.readyState=="complete")
      // do stuff here
  }
}

我之前遇到过这个问题,当时是我从Google加载jQuery时,由于某种原因它没有从google加载。 我不确定您是否遇到相同的问题,但是可以尝试的方法是这样的,如果无法从Google加载,则加载本地。

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script>
if (!window.jQuery) {
    document.write('<script src="/script/jquery.1.11.0.min.js"><\/script>');
}
</script>

onload和onready之间的区别在于,onload负责特定元素。 并且onready正在整个页面上工作。 window.onload与$(document).ready()
在这种情况下,我建议您将jQuery添加到您的页面并使用
$(document).ready(function () {/*code you'd like to execute*/});
只需在body标签底部插入<script src="//code.jquery.com/jquery-1.11.0.min.js"></script>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM