2013-05-25 55 views
6

所以我知道,如果你使用jQuery,您可以使用$(document).load(function(){});使整個頁面加載後,你寫函數的任意代碼被執行,但有做類似的事情的一種方式如果你不使用jQuery,只使用JS?在頁面加載執行JS,而無需使用jQuery的

例如...

<html> 
    <head> 
     <script type="text/javascript"> 
      var box = document.getElementById('box'); 
      alert(box); 
     </script> 
    </head> 
    <body> 
     <div id="box" style="width:200px; height:200px; background-color:#999; 
margin:20px;"></div> 
    </body> 
</html> 

如果我用這個方法警報只是說null。那麼是否有一種方法可以在頁面加載後運行js代碼?

+0

事實上,使用jQuery的時候,請**不要**使用'$(文件).load(函數(){...});' – adeneo

+0

這個問題可能有你需要[答案HTTP:/ /stackoverflow.com/questions/799981...](http://stackoverflow.com/questions/799981/document-ready-equivalent-without-jquery) – Tifa

回答

13

我用:

<script type="text/javascript"> 
    window.onload = function(){ 
     //do stuff here 
    }; 
</script> 

這樣你就不必在你的HTML中使用任何的onload標籤。

+0

我喜歡你的方式,當它讓我的時候有一個答案。 – user1563944

8

最簡單的方法是簡單地把你的腳本在文檔的末尾,通常只是結束標記之前:

<html> 
<head> 

</head> 
<body> 
<div id="box" style="width:200px; height:200px; background-color:#999; margin:20px;"></div> 
<script type="text/javascript"> 
    var box = document.getElementById('box'); 
    alert(box); 
</script> 
</body> 

</html> 
+0

所以得到的JS找到元素#box js的標籤有去身體部分,而不是頭標籤內? – user1563944

+0

@ user1563944 - 更具體地說,javascript必須在您嘗試訪問的元素之後,否則在執行JavaScript時元素不存在。 – adeneo

2

你可以在你的身體標記的onload使用。

<head> 
    <script type="text/javascript"> 
     function doSomething() { 
     //your code here 
     } 
    </script> 
</head> 
<body onload="doSomething()"> 
+0

爲什麼投下來? – Robbert

4

您可以使用各種方法來完成此操作。

的最簡單,最簡單的方法是簡單地在你的身體標記的末尾添加腳本標籤:

<html> 
<head> 
    <title> Example </title> 
</head> 
<body> 
    <div> 
     <p>Hello</p> 
    </div> 
    <script type="text/javascript"> 
     // Do stuff here 
    </script> 
</body> 
</html> 

的方式jQuery不會是類似於:

window.onload = function() { 
    // Do stuff here 
} 

我通常只是做第二種方式,以防萬一。

爲了確保跨瀏覽器的兼容性,通過jQuery的源抓取並找到他們的使用。

相關問題