如何等待完整的页面加载(包括图像等)
How to wait for complete page load (including images etc.)
我想在加载页面时显示 "Please wait while the page is loading..." 消息。该页面包含许多小图像,需要一些时间才能加载。所以我不想在加载这些消息之前隐藏消息。
我尝试使用 dojo/domReady!
和 dojo/ready
,但它们在图像加载之前触发,因此当我此时隐藏消息时页面看起来仍然不完整。
以下代码有效,但似乎不是 dojo 方式:
window.onload = hideLoadingMessage();
使用 on
注册到 window.onload
根本不起作用:
require([ 'dojo/_base/window', 'dojo/on' ], function(win, on) {
on(win, 'onload', hideLoadingMessage);
});
我应该如何等待页面完全加载(包括所有图片)?
如果要连接到 window 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>
我想在加载页面时显示 "Please wait while the page is loading..." 消息。该页面包含许多小图像,需要一些时间才能加载。所以我不想在加载这些消息之前隐藏消息。
我尝试使用 dojo/domReady!
和 dojo/ready
,但它们在图像加载之前触发,因此当我此时隐藏消息时页面看起来仍然不完整。
以下代码有效,但似乎不是 dojo 方式:
window.onload = hideLoadingMessage();
使用 on
注册到 window.onload
根本不起作用:
require([ 'dojo/_base/window', 'dojo/on' ], function(win, on) {
on(win, 'onload', hideLoadingMessage);
});
我应该如何等待页面完全加载(包括所有图片)?
如果要连接到 window 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>