日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > windows >内容正文

windows

js window.onload 加载多个函数和追加函数

發(fā)布時(shí)間:2023/12/19 windows 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 js window.onload 加载多个函数和追加函数 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

平時(shí)做項(xiàng)目 經(jīng)常需要使用window.onload,

用法如下:

function func(){alert("this is window onload event!");return;}?

window.οnlοad=func;

或者如下:

window.οnlοad=function(){alert("this is window onload event!");return;}

但window.onload 不能同時(shí)加載多個(gè)函數(shù)。

比如:
function t(){
alert("t")
}
function b(){
alert("b")
}
window.onload =t ;
window.onload =b ; 后面會(huì)把前面的覆蓋,上面代碼只會(huì)輸出 b。

此時(shí)可用如下方法解決:

window.onload =function() { t();??b(); }

另一種解決方法如下:

?

代碼 ?function?addLoadEvent(func)?{
??
var?oldonload?=?window.onload;//得到上一個(gè)onload事件的函數(shù)
??if?(typeof?window.onload?!=?'function')?{//判斷類型是否為'function',注意typeof返回的是字符串
????window.onload?=?func;
??}?
else?{??
????window.onload?
=?function()?{
??????oldonload();
//調(diào)用之前覆蓋的onload事件的函數(shù)---->由于我對(duì)js了解不多,這里我暫時(shí)理解為通過覆蓋onload事件的函數(shù)來實(shí)現(xiàn)加載多個(gè)函數(shù)
??????func();//調(diào)用當(dāng)前事件函數(shù)
????}
??}
}

//(完整示例)使用如下:

function?t(){
alert(
"t")
}
function?b(){
alert(
"b")
}
function?c(){
alert(
"c")
}
?
function?addLoadEvent(func)?{
??
var?oldonload?=?window.onload;
??
if?(typeof?window.onload?!=?'function')?{
????window.onload?
=?func;
??}?
else?{??
????window.onload?
=?function()?{
??????oldonload();
??????func();
????}
??}
}

addLoadEvent(t);
addLoadEvent(b);
addLoadEvent(c);
//等價(jià)于??window.onload?=function()?{?t();??b();?c()?;}

?

?

?

個(gè)人以為直接使用隱式函數(shù)(如:window.onload =function() { t();??b(); c() ;})更快捷,當(dāng)然使用 addLoadEvent 更professional,各取所好吧!

?

JS window.onload追加函數(shù):

?

?

<script>
if(window.attachEvent)//IE:如果瀏覽器中存在window.attachEvent函數(shù)則使用window.attachEvent函數(shù),判斷是否是IE還可以使用:if?(document.all){//..}
window.attachEvent("onload",function()?{alert("add?method");});
else??//FireFox
window.addEventListener("load",function()?{alert("add?method");},true);
</script>

?

?

?

運(yùn)行,js中alert彈出消息,問題解決。

============相關(guān)資料================

attachEvent?? 將指定函數(shù)綁定到事件,以便每當(dāng)該事件在對(duì)象上觸發(fā)時(shí)都調(diào)用該函數(shù)。

?Internet Explorer 從 5.0 開始提供了一個(gè) attachEvent 方法,使用這個(gè)方法,就可以給一個(gè)事件指派多個(gè)處理過程了。attachEvent 對(duì)于目前的 Opera 也適用。但是 Mozilla/Firefox 并不支持這個(gè)方法。但是它支持另一個(gè) addEventListener 方法,這個(gè)方法跟 attachEvent 差不多,也是用來給一個(gè)事件指派多個(gè)處理過程的。但是它們指派的事件有些區(qū)別,在 attachEvent 方法中,事件是以 “on” 開頭的,而在 addEventListener 中,事件沒有開頭的 “on”,另外 addEventListener 還有第三個(gè)參數(shù),一般這個(gè)參數(shù)指定為 false 就可以了。

最后感謝vForm表單驗(yàn)證程序的作者-雷曉寶

?

本文來自CSDN博客,轉(zhuǎn)載請(qǐng)標(biāo)明出處:http://blog.csdn.net/chenlei65368/archive/2009/09/12/4544823.aspx

轉(zhuǎn)載于:https://www.cnblogs.com/archermeng/p/7537585.html

總結(jié)

以上是生活随笔為你收集整理的js window.onload 加载多个函数和追加函数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。