[英]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.