2016-06-09 66 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