js window.onload 加載多個(gè)函數(shù)和追加函數(shù)詳解
平時(shí)做項(xiàng)目 經(jīng)常需要使用window.onload,
用法如下:
function func(){alert("this is window onload event!");return;}
window.onload=func;
或者如下:
window.onload=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í)理解為通過(guò)覆蓋onload事件的函數(shù)來(lái)實(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彈出消息,問(wèn)題解決。
============相關(guān)資料================
attachEvent 將指定函數(shù)綁定到事件,以便每當(dāng)該事件在對(duì)象上觸發(fā)時(shí)都調(diào)用該函數(shù)。
Internet Explorer 從 5.0 開(kāi)始提供了一個(gè) attachEvent 方法,使用這個(gè)方法,就可以給一個(gè)事件指派多個(gè)處理過(guò)程了。attachEvent 對(duì)于目前的 Opera 也適用。但是 Mozilla/Firefox 并不支持這個(gè)方法。但是它支持另一個(gè) addEventListener 方法,這個(gè)方法跟 attachEvent 差不多,也是用來(lái)給一個(gè)事件指派多個(gè)處理過(guò)程的。但是它們指派的事件有些區(qū)別,在 attachEvent 方法中,事件是以 “on” 開(kāi)頭的,而在 addEventListener 中,事件沒(méi)有開(kāi)頭的 “on”,另外 addEventListener 還有第三個(gè)參數(shù),一般這個(gè)參數(shù)指定為 false 就可以了。
- jquery $(document).ready()和window.onload的區(qū)別淺析
- window.onload追加函數(shù)使用示例
- JS:window.onload的使用介紹
- jquery $(document).ready() 與window.onload的區(qū)別
- jquery中的$(document).ready()與window.onload的區(qū)別
- window.onload的頁(yè)面加載技巧
- jquery中的$(document).ready()使用小結(jié)
- jquery的$(document).ready()和onload的加載順序
- window.onload與$(document).ready()的區(qū)別分析
相關(guān)文章
event.keyCode鍵碼值表 附只能輸入特定的字符串代碼
非常不錯(cuò)的應(yīng)用,讓文本框里只能輸入money大家看下具體的實(shí)現(xiàn)代碼,真是只有想到,原理很簡(jiǎn)單。2009-05-05
JavaScript實(shí)現(xiàn)pdf文件導(dǎo)出和在線預(yù)覽功能
這篇文章主要為大家詳細(xì)介紹了如何通過(guò)JavaScript實(shí)現(xiàn)在線導(dǎo)出pdf文件,及office文件如何在線預(yù)覽,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-11-11
JScript中的"this"關(guān)鍵字使用方式補(bǔ)充材料
JScript中的"this"關(guān)鍵字使用方式補(bǔ)充材料...2007-03-03
最簡(jiǎn)單的JavaScript圖片輪播代碼(兩種方法)
基于javascript代碼實(shí)現(xiàn)最簡(jiǎn)單的圖片輪播效果,非常簡(jiǎn)單,本文通過(guò)兩種方式給大家介紹最簡(jiǎn)單的圖片輪播,感興趣的朋友一起學(xué)習(xí)吧2015-12-12
layui 實(shí)現(xiàn)表格某一列顯示圖標(biāo)
今天小編就為大家分享一篇layui 實(shí)現(xiàn)表格某一列顯示圖標(biāo)的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-09-09
js+html5實(shí)現(xiàn)canvas繪制橢圓形圖案的方法
這篇文章主要介紹了js+html5實(shí)現(xiàn)canvas繪制橢圓形圖案的方法,涉及html5圖形繪制的基礎(chǔ)技巧,感興趣的朋友可以參考一下2016-05-05
JavaScript中省略元素對(duì)數(shù)組長(zhǎng)度的影響
這篇文章主要介紹了JavaScript中省略元素對(duì)數(shù)組長(zhǎng)度的影響,本文給大家介紹的非常詳細(xì)具有參考借鑒價(jià)值,需要的朋友可以參考下2016-10-10

