複用window.onload方法

來源:酷知科普網 1.79W

Javascript中,ad是指當頁面載入完成後,要觸發的事件。比如頁面載入完,要顯示某個歡迎介面,這時就需要onload方法。
通常的用法如下: ad = my_onload_function;
這種方法有個問題就是,如果onload時需要呼叫多個方法時,這樣寫的話,後面呼叫的會覆蓋前面的,最終只有最後面呼叫的方法會執行,前面的不會。
那要怎樣才能複用onload方法,讓其呼叫的方法都執行呢?

操作方法

(01)首先我們看下問題,如圖,頁面載入完後,從log輸出的資訊看只有 function2輸出, 第一個方法的呼叫被覆蓋,沒有執行輸出

複用ad方法
複用ad方法 第2張

(02)方法一: 這個問題,首先我們就是要用JQuery庫了,引入Jquery庫對dom的其他操作也方便。引入Jquery庫檔案,並把程式碼改成如圖,

複用ad方法 第3張

(03)$(document)y(function() {}); 他意思是當文件準備好(載入完),就執行裡面的程式碼,相當於onload事件了。ready方法可以寫多個,而不會相互覆蓋,直接解決了上面的問題,複用了onload方法,看下執行結果,從log資訊輸出來看,正確按順序執行了二個function了。

複用ad方法 第4張

(04)如果你不想引入Jquery指令碼庫,也是有方法解決的。方法二, 如圖,把onload方法給 all_onload_function,然後其他需要在 onload執行的方法,全部在all_onload_function裡進行呼叫執行。這個方法的缺點是,當多人協作開發,其他人不知道你也定義了onload方法,他那邊也定義一個onload方法就會發生原來覆蓋的問題了。

複用ad方法 第5張

(05)方法三,我們新增一個 addOnLoadEvent方法,這個方法首先判斷onload事件是否已經有了對應的方法,沒有的話,直接賦值給引數傳進來的方法。如果原先已經有了,則重新定義onload方法,先呼叫原來的方法,再呼叫引數傳進來的新方法。如圖

複用ad方法 第6張

(06)這個方法從理論上說,也是支援無限個onload方法的,執行結果如圖,正確按順序執行了三個方法。

複用ad方法 第7張

(07)總結,方法二適合個人開發,並要時刻注意不能重複寫 ad, 因為會被覆蓋。方法一和方法三都可以有無限多個Onload的方法,不用擔心被覆蓋。如果你不需要引入額外的指令碼庫,就用方法三。如果你的程式碼裡已經引入了Jquery庫的,則可以使用方法一。指令碼庫省卻了我們很多工作,我們不需要做太多重複的工作,只需要呼叫就行了。

熱門標籤