天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

javascript addLoadEvent函數說明

在給網頁加一些特效時經常要在<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();
});

演示代碼:

[Ctrl+A 全選 注:如需引入外部Js需刷新才能執行]
  推薦大家以后都用addLoadEvent()函數來替換<body>中加入“onload”事件。addLoadEvent ()自定義代碼來源于:http://www.simonwillison.NET/2004/May/26/addLoadEvent/
addLoadEvent工作流程:

把現有的window.onload事件處理函數的值存入變量oldonload。
如果在這個處理函數上還沒有綁定任何函數,就像平時那樣把新函數添加給它;
如果在這個處理函數已經綁定了一些函數,就把函數追回到現有指令未尾。
瀏覽器加載html內容是自上而下的(默認),而JS一般是在哪里引入――想想如果JS里面包含了一些即時執行指令,
它會操作根本不存在元素節點(因為還沒有加載完)會有什么后果?結果就是出錯。

addLoadEvent可以實現無論有多少個函數,都能讓它們同時和window.onload事件綁定。

onload事件-----addLoadEvent函數

復制代碼 代碼如下:
window.onload = myfunction();

假如我們希望某個函數在網頁加載完畢之后就立即執行。網頁加載完畢時會觸發一個onload事件,所以我們可以利用onload事件來加載這個函數。Onload事件與window對象相關聯。如:

把myfunction函數綁定到這個事件上:

一個函數我們可以利用上面的解決,那兩個、三個甚至更多呢?怎么解決??

假如我們有firstFunction和secondFunction兩個函數,是不是就是下面這樣寫呢:
復制代碼 代碼如下:
window.onload = firstFunction;
window.onload = secondFunction;

但是每個處理函數只能綁定一條指令。所以上面的不行。因為secondFunction函數將會取代firstFunction函數。

有一種辦法可以幫助我們解決上面問題:即我們先創建一個匿名函數來容納這兩個函數,然后把那個匿名函數綁定到onload事件上,如下:
復制代碼 代碼如下:
window.onload = function(){
firstFunction();
secondFunction();
}

這確實是一個好的、簡答的方法。

但是其實還存在一個最佳的解決方案――不管你打算在頁面加載完畢后要執行多少個函數,利用該函數都可以輕松的實現。

該函數名為addLoadEvent。該函數僅一個參數:該參數指定了你打算在頁面加載完畢后需要執行的函數的函數名。
addLoadEvent()函數代碼如下:
復制代碼 代碼如下:
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、如果在這個處理函數上還沒有綁定任何函數,就將該函數添加給它。

3、如果在這個處理函數上已經綁定了一些函數,就把該函數追加到現有指定的末尾。

通過addLoadEvent函數,只需要調用該函數就可以進行綁定了。

復制代碼 代碼如下:
addLoadEvent(firestFunction);
addLoadEvent(secondFunction);

所以這個函數非常有用,尤其當代碼變得很復雜的時候。無論你打算在頁面加載完畢時執行多少個函數,只需要多寫幾條這樣的語句就可以解決了。方便、實用。

JavaScript技術javascript addLoadEvent函數說明,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 极品少妇高潮啪啪AV无码吴梦梦 | 翁公与小莹在客厅激情 | chinese国语露脸videos | 蜜芽一区二区国产精品 | 91情国产l精品国产亚洲区 | 一边捏奶头一边啪高潮会怎么样 | 伊人久久综在合线亚洲 | 亚洲国产成人爱AV在线播放丿 | 超碰97超碰在线视频哦 | 亚洲精品久久久久久偷窥 | 成人网站国产在线视频内射视频 | 99久久爱看免费观看 | 欧美18精品久久久无码午夜福利 | 果冻传媒在线观看完整版免费 | 国产深夜福利视频在线 | 国产CHINESE HD精品 | 久久精品国产色蜜蜜麻豆国语版 | 国产精品毛片AV久久97 | 又黄又猛又爽大片免费 | 一本到高清视频在线观看三区 | 天天躁日日躁狠狠躁AV麻豆 | www色小姐 | 在线观看亚洲免费人成网址 | 久久re热在线视频精99 | 亚洲中字慕日产2020 | 3acg同人漫画禁图h | yin荡体育课羞耻play双性 | 特大巨黑人吊性xxxxgay | 超碰人人澡人人胔 | 国产91网站在线观看免费 | 特大黑人娇小亚洲女mp4 | 色WWW永久免费视频首页 | 亚洲 欧美 中文 日韩 视频 | 无码国产欧美日韩精品 | 久久精品亚洲精品国产欧美 | 一本道dvd久久综合高清免费 | 美女丝袜夹b | 精品人伦一区二区三区潘金莲 | 亚洲精品无码专区在线播放 | 久青草国产在线观看视频 | 日日天干夜夜狠狠爱 |