windows.onload和body的onload屬性的區別
阿新 • • 發佈:2018-11-14
關於windows.onload和body的onload屬性的區別網上有些說法說的也不太統一,現在系統說下:
先看共同點: 都是body內容體載入結束執行;
window.onload 內部方式可以 推薦的
body onload屬性: 內聯或者內嵌方式可以, 內部也可以
首先,這兩個onload事件只能執行一個
在程式中設定一個onload的事件時,第一種:只設置body onload屬性中可以查詢到body元素 ,第二種:只設置window.onload函式中也可以查詢到body元素,這是因為這兩個都是body內容體載入結束執行的
兩者同時設定:只執行body onload屬性的內容; (window.onload在head頭部中出現的情況),另外,還有如果window.onload出現在body onload屬性的後面的情況.無論順序則麼樣,除了onload事件的程式碼,都是按照順序來進行的,等載入完body的頁面,再執行onload事件,後面onload事件是可以覆蓋前面的onload事件的.具體看程式碼:
---------------------
<!DOCTYPE html> <html> <head> <script type="text/javascript"> alert('a'); window.onload=function () { alert('b'); } ; alert('c'); </script> </head> <body onload="alert('d');"> </body> </html>
執行結果是:a c d
ac先會alert出來沒有疑問,對於bd,就是誰在下面就會執行誰,這是因為html標籤的載入順序是除onload之外從上向下載入,然後會按從上向下的順序載入onload事件,所以下面的onload會把上面的onload事件給覆蓋掉.(使用谷歌瀏覽器)
再看另外一個程式碼:
<!DOCTYPE html> <html> <head> </head> <body onload="alert('d');"> </body> <script type="text/javascript"> alert('a'); window.onload=function () { alert('b'); } ; alert('c'); </script> </html>
按照上面的解釋,執行結果是acb,和執行的結果是一致的.