關於JS的--window.onload()方法
阿新 • • 發佈:2019-02-18
一、window.onload()方法:
該方法用於在網頁載入完畢後立刻執行的操作,即當html載入完畢後,立刻執行某個方法等。
二、為什麼使用window.onload()?
因為JS中的函式方法等需要在HTML文件渲染完成才可以使用,如果沒有渲染完成,此時的DOM樹是不完整的,這樣JS檔案就可能報出"undefined"錯誤。
三、常見的用法:
簡單的立刻執行函式,假設一個js中只有一個需要頁面載入後,立刻執行的函式
那直接呼叫,不需要加括號
window.onload=Func;
假設一個js中有多個需要頁面載入後,立刻執行的函式,那就如下呼叫即可,需要加括號
window.onload=function(){
Func1();
Func2();
Func3();
.....
}
但,以上方式也僅僅適用於繫結的函式不是很多的場合
四、window.onload()方法的衍生:
不管你打算在頁面載入完畢時執行多少個函式,一百個一千個等,它都可以應付自如,使用一個函式addLoadEvent,它是由Simon Willison(詳見 http://simon.incutio.com)編寫的,它只有一個引數---需要執行的函式名。
function addLoadEvent(func){
var oldonload=window.onload;
if(typeof window.onload!='function'){
window.onload=func;
}else{
window.onload=function(){
oldonload();
func();
}
}
}
上面addLoadEvent函式執行的操作含義是:
1.把現有的window.onload事件處理函式的值存入變數oldonload。
2.如果在這個處理函式上還沒有繫結的任何函式,則使用window.onload=func直接呼叫,不需要加括號
3.如果在這個處理函式上已經綁定了一些函式,就把新的函式追加到現在指令的末尾。
呼叫該函式時直接將需要執行的函式名稱(不需要加括號)當作引數即可,例如:
addLoadEvent(Func1);
addLoadEvent(Func2);
addLoadEvent(Func3);