首先我們要明確HTML文檔是按照從上往下的順序執行的,也就是我們常說的文檔流。而window.onload是當HTML文檔上的內容加載完成(包括圖片)後才會
去執行,所以當我們使用外部腳本(也就是腳本和HTML文檔徹底分離)而且腳本中還使用到window.onload來處理頁面的時候,就需要注意<script src="#腳
本存在路徑"></script>不再是隨便擺放了,當擺放在<head></henad>頭部時很可能就會出現獲取不到對象的情況,從而JS腳本出現報錯,所以我建議這時候就可
以把<script src="#腳本存在路徑"></script>擺放在</body>前面的位置,當然我所說的都是基於完全使用外部腳本的前提下。
撇開上面的前提,大多數人都喜歡<body onload="#腳本">這種處理方式,畢竟簡單易行。window.onload是一個事件,是一個當文檔加載完成後就會觸發的事件
。所以還有一種處理window.onload的辦法,就是為window.onload事件綁定事件處理函數,就像window.onload = function(){}這樣的形式,這種辦法就
不再糾結於<script src="#腳本存放位置"></script>擺放在哪裡這個問題了。但是需要注意的一點就是這種方式不能同時綁定多個事件處理函數,像這
樣:window.onload = function a(){};window.onload = function b(){},這樣的結果就是後面一個會覆蓋前面一個。要想解決這個問題可以變通一下,比如這
樣:
window.onload = function() {
function a() {};
function b() {};
function c() {};
.
.
}
還有一種辦法就是寫一個可以同時執行多個window.onload事件的函數,但是個人感覺太難,而且對於現在我們的情況來說上面那個相對來說有點蠢的方法更加適合
我們。要是有同學想了解或者學習這個方法可以自己百度一下。