2016-06-09 61 views
0

我有一個函數,它將註冊一個處理程序到window.load事件。但是這裏的問題在於,包含JavaScript文件的函數由內容管理系統加載,並且在文件被加載到頁面中時,window.load已經完成,因此處理程序根本沒有被註冊和調用。延遲JavaScript文件加載導致事件註冊失敗

任何人都可以請建議一些東西。謝謝。

回答

0

在你的情況下,你可以使用AMD- require js,其中你可以指定依賴關係來使用,如下所示。只有當JS被加載,你可以在下面

require(['someUtils'], function(someUtils){ 
         someUtils.attachHandler(element); 
       }) 

給出附加一些事件或可以延遲通過調用使用setTimeout()

或函數附加的處理程序,如果你正在使用jQuery

$(document).ready(function() { 
// executes when HTML-Document is loaded and DOM is ready 
alert("document is ready"); 
}); 
+0

問題在於文件加載和window.load事件觸發之間的時間差異。你可以請建議一種方法來確保處理程序在窗口加載完成之前得到註冊嗎? – Madav

+0

如果你不使用Require js,你可以延遲你的加載,如下所示https://www.nczonline.net/blog/2009/07/28/the-best-way-to-load-external-javascript/ Hope這有助於 – jslearner07