在給網頁加一些特效時經常要在<body>中加入“onload”事件,即在網頁載入完後執行某事件,例如:<body onload=”alert(‘歡迎光臨!')”,但這樣做有個大的缺陷,事件會在網頁完全下載完後才會執行,包括網頁中的圖片或Flash等,如果網頁中的圖片比較大或有很多圖,可能還沒等網頁完全下載完網友已經點選連結到其它網頁去了,這樣這個事件就沒有執行了。另外在某些特殊情況下可能還修改不了網頁的body參數。如在別人網站發表文章時,或用CMS整站系統時。
這時我們會想到用“window.onload”或“document.body.onload”來替換<body>中的onload事件,的確,問題解決了,但在載入多個onload事件時或控制加裁順序時還會出現一些問題,直到我發現“Paul Koch”寫的addLoadEvent()函數後,所有問題都解決了。如果大家一定要用“window.onload”或 “document.body.onload”來替換<body>中的onload事件,建議大家用前者,Firefox瀏覽器中無效,即相容性有問題。
JavaScript代碼
複製代碼 代碼如下:function addLoadEvent(func) {
var oldonload = window.onload;
if (typeof window.onload != 'function') {
window.onload = func;
} else {
window.onload = function() {
oldonload();
func();
}
}
}
調用方法: 複製代碼 代碼如下:addLoadEvent(wwwjb51());
//或
addLoadEvent(function(){
document.body.style.backgroundColor = 'yellow';
jb51();
});
示範代碼:
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"><p>Here goes...</p><p>