如果引入的其他js檔案中也存在window.onload事件如何處理
大家都知道,window.onload事件處理函式只會最有一個有效的,前面的都會被最後一個覆蓋。
但是如果你如果引入的js檔案的程式碼中也存在這樣一個事件處理函式,並且當前檔案中也需要用到這樣的事件處理函式,那麼必然會導致一個會失效,這並不是我們希望的,下面就通過程式碼例項介紹一下如何解決此問題。
程式碼例項:
[JavaScript] 純文字檢視 複製程式碼if(window.onload!=null){ eval("prefunc="+window.onload.toString()); window.onload=function(){ prefunc(); addReadResource(); }; }
上面的程式碼實現了我們的要求,下面介紹一下它的實現原理。
實現原理:
首先判斷是否已經註冊window.onload事件處理函式,如果已經有註冊的,那麼通過toString()函式獲取已經註冊事件處理函式的函式體,但是這裡需要特別注意的是toString()函式獲取的是一個字串,所以必須外部用eval()函式運算一下,最後prefunc儲存就是一個指向函式引用。最後再定義一個事件處理函式,將prefunc()放在這個事件處理函式中執行就可以了。
相關閱讀:
1.window.onload可以參閱window.onload一章節。
2.eval()函式可以參閱javascript eval()一章節。
相關文章
- 在一個js檔案中引入另一個js檔案JS
- 如何實現為window.onload註冊多個事件處理函式事件函式
- JS事件處理JS事件
- js如何判斷指定的檔案是否存在JS
- 02@在類的標頭檔案中儘量少引入其他標頭檔案
- node js 處理PDF檔案JS
- LiferayDynamicCSSFilter方法的研究-快取檔案存在的處理CSSFilter快取
- Python如何處理檔案的?Python
- 如何在 .NET Core WebApi 中處理 MultipartFormDataContent 中的檔案WebAPIORM
- 引入js檔案失敗JS
- java中的事件處理Java事件
- js如何批量註冊事件處理函式JS事件函式
- vue中如何引入公共樣式的的styl檔案Vue
- 影像處理或其他多媒體處理中的值溢位處理
- android,如果某個檔案存在就刪除Android
- vue專案中如何全域性引入scss/sass檔案VueCSS
- js如何降低事件處理函式的執行頻率JS事件函式
- Python 如何處理大檔案Python
- 前端如何處理xml配置檔案?前端XML
- java中 檔案壓縮處理Java
- 對於CSV檔案中{,}和{"}的處理
- window.onload 事件事件
- 如何給js的onclick事件處理函式傳遞引數JS事件函式
- html檔案中包含其他檔案的方法大全HTML
- asp.net中引入外部js檔案的中文亂碼問題ASP.NETJS
- 3、Webserver如何處理動態檔案WebServer
- Python3中檔案處理Python
- js判斷引入的js檔案是否載入完畢JS
- js如何給繫結的事件處理函式傳遞引數JS事件函式
- 網頁引入使用js檔案的幾種方式網頁JS
- JSP 異常處理如何處理?JS
- Rollup處理並打包JS檔案專案例項JS
- nodejs檔案上傳處理模組formidableNodeJSORM
- nginx 是如何處理過期事件的?Nginx事件
- [轉] Scala 中的非同步事件處理非同步事件
- [R]檔案處理
- bat處理檔案BAT
- bat檔案處理BAT