【问题标题】:Dojo and the onload eventDojo 和 onload 事件
【发布时间】:2014-06-16 21:45:32
【问题描述】:

我们有一堆旧页面。我们正在尝试将 dojo 注入其中。然而,我们发现任何绑定到“加载”事件,例如

window.addEventListener("load", handler)

执行失败。

我阅读了 2006 年的几篇博客文章,这些文章表明 dojo 正在对加载事件做一些事情,但它们是旧文章,不确定它们是否仍然相关。

将绑定更改为使用 dojo/ready 是可行的,但是有很多代码,我们希望不必对它们进行全面检查。

dojo不能使用window.onload吗?

【问题讨论】:

    标签: javascript dojo


    【解决方案1】:

    它应该可以正常工作,所以以下应该可以工作:

    window.addEventListener("load", function() {
      console.log("Handled by using an event listener on the onload event");
    });
    
    window.onload = function() {
      console.log("Handled by using the onload event");  
    };
    

    甚至 Dojo 也有自己的模块来等待 DOM 被加载:

    require([ "dojo/domReady!" ], function() {
       console.log("Handled by using the dojo/domReady module"); 
    });
    

    如果您想使用 AMD 并加载您需要的模块,您可能希望使用 dojo/domReady! 模块。

    但是,如果您正在使用小部件的声明性标记,那么您将不得不等到这些小部件也被解析,这发生在 DOM 加载之后,这就是dojo/ready 模块的用处。

    dojo/ready 模块不仅会等待 DOM 加载完毕,还会等待所有声明性标记解析为小部件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-06
      • 1970-01-01
      • 1970-01-01
      • 2011-07-08
      相关资源
      最近更新 更多