1. 程式人生 > >關於JS的--window.onload()方法

關於JS的--window.onload()方法

一、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);