簡體   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