js window.onload 加載多個函數和追加函數詳解
平時做項目 經常需要使用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 不能同時加載多個函數。
比如:
function t(){
alert("t")
}
function b(){
alert("b")
}
window.onload =t ;
window.onload =b ;
后面會把前面的覆蓋,上面代碼只會輸出 b。
此時可用如下方法解決:
window.onload =function() { t(); b(); }
另一種解決方法如下:
function addLoadEvent(func) {
var oldonload = window.onload;//得到上一個onload事件的函數
if (typeof window.onload != 'function') {//判斷類型是否為'function',注意typeof返回的是字符串
window.onload = func;
} else {
window.onload = function() {
oldonload();//調用之前覆蓋的onload事件的函數---->由于我對js了解不多,這里我暫時理解為通過覆蓋onload事件的函數來實現加載多個函數
func();//調用當前事件函數
}
}
}
//(完整示例)使用如下:
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);
//等價于 window.onload =function() { t(); b(); c() ;}
個人以為直接使用隱式函數(如:window.onload =function() { t(); b(); c() ;})更快捷,當然使用 addLoadEvent 更professional,各取所好吧!
JS window.onload追加函數:
<script>
if(window.attachEvent)//IE:如果瀏覽器中存在window.attachEvent函數則使用window.attachEvent函數,判斷是否是IE還可以使用:if (document.all){//..}
window.attachEvent("onload",function() {alert("add method");});
else //FireFox
window.addEventListener("load",function() {alert("add method");},true);
</script>
運行,js中alert彈出消息,問題解決。
============相關資料================
attachEvent 將指定函數綁定到事件,以便每當該事件在對象上觸發(fā)時都調用該函數。
Internet Explorer 從 5.0 開始提供了一個 attachEvent 方法,使用這個方法,就可以給一個事件指派多個處理過程了。attachEvent 對于目前的 Opera 也適用。但是 Mozilla/Firefox 并不支持這個方法。但是它支持另一個 addEventListener 方法,這個方法跟 attachEvent 差不多,也是用來給一個事件指派多個處理過程的。但是它們指派的事件有些區(qū)別,在 attachEvent 方法中,事件是以 “on” 開頭的,而在 addEventListener 中,事件沒有開頭的 “on”,另外 addEventListener 還有第三個參數,一般這個參數指定為 false 就可以了。
- jquery $(document).ready()和window.onload的區(qū)別淺析
- window.onload追加函數使用示例
- JS:window.onload的使用介紹
- jquery $(document).ready() 與window.onload的區(qū)別
- jquery中的$(document).ready()與window.onload的區(qū)別
- window.onload的頁面加載技巧
- jquery中的$(document).ready()使用小結
- jquery的$(document).ready()和onload的加載順序
- window.onload與$(document).ready()的區(qū)別分析
相關文章
一文詳解JSON.parse和JSON.stringify的用法
Json.stringify()和toString()兩者雖然都可以講目標值轉為字符串,但是還是有本質區(qū)別的,下面這篇文章主要給大家介紹了關于JSON.parse和JSON.stringify用法的相關資料,需要的朋友可以參考下2023-01-01???????基于el-table和el-pagination實現數據的分頁效果流程詳解
本文主要介紹了???????基于el-table和el-pagination實現數據的分頁效果,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2022-11-11Bootstrap自動適應PC、平板、手機的Bootstrap柵格系統(tǒng)
這篇文章主要介紹了Bootstrap自動適應PC、平板、手機的Bootstrap柵格系統(tǒng)的相關資料,需要的朋友可以參考下2016-05-05