如何等待完整的页面加载(包括图像等)



我想显示一个"请等待,而页面正在加载…"消息,而我的页面正在加载。该页面包含许多小图像,需要一些时间来加载。所以我不想在加载之前隐藏消息

我尝试使用dojo/domReady!dojo/ready,但它们在加载图像之前触发,因此当我隐藏消息时,页面仍然看起来不完整。

下面的代码工作,但似乎不是dojo的方式:

window.onload = hideLoadingMessage();

on注册到window.onload根本不起作用:

require([ 'dojo/_base/window', 'dojo/on' ], function(win, on) {
  on(win, 'onload', hideLoadingMessage);
});

我应该如何等待页面完全加载,包括所有的图像?

如果你想连接到窗口load事件,你不应该使用dojo/_base/window

只使用普通的window对象。也使用load作为事件名称(而不是onload)。直接使用window对象可以避免加载不需要的模块。

参见下面的两个解决方案片段(window对象和dojo/_base/_window模块):

require(['dojo/_base/window', 'dojo/on'], function(baseWin, on) {
  on(window, 'load', function() {
    alert('loaded - using global window object!');
  });
  
  on(baseWin.global, 'load', function() {
    alert('loaded - using dojo window module!');
  });
});
<script src="//ajax.googleapis.com/ajax/libs/dojo/1.10.4/dojo/dojo.js"></script>

最新更新