这是一个crossbrowser window.onload脚本,我想在页面加载(<div id="message">Loading, please wait</div>
)时添加消息,而在页面加载完成时它必须消失< / strong>即可。我怎样才能做到这一点?请帮忙。
function init() {
if (arguments.callee.done) return;
arguments.callee.done = true;
};
if (document.addEventListener) {
document.addEventListener("DOMContentLoaded", init, false);
}
/*@cc_on @*/
/*@if (@_win32)
document.write("<script id=\"__ie_onload\" defer=\"defer\" src=\"javascript:void(0)\"><\/script>");
var script = document.getElementById("__ie_onload");
script.onreadystatechange = function() {
if (this.readyState == "complete") {
init();
}
};
/*@end @*/
if (/WebKit/i.test(navigator.userAgent)) {
var _timer = setInterval(function() {
if (/loaded|complete/.test(document.readyState)) {
clearInterval(_timer);
init();
}
}, 10);
}
window.onload = init;
答案 0 :(得分:2)
只需加载页面,加载DIV从头开始即可。在init函数的末尾隐藏它??
答案 1 :(得分:2)
最简单的方法是在加载事件中隐藏DOM中的div:
<html>
<body>
<div id="loading">The page is loading, please wait</div>
[...]
<script>
window.onload = function () {
document.getElementById('loading').style.display = "none";
}
</script>
</body>
</html>
要确保此功能始终有效,即使用户已禁用JavaScript:
<html>
<body>
<script>
document.write('<div id="loading">The page is loading, please wait</div>');
</script>
[...]
<script>
window.onload = function () {
document.getElementById('loading').style.display = "none";
}
</script>
</body>
</html>
答案 2 :(得分:1)
您捕获的事件是DOM完成加载时触发的事件,加载的下一步是body.onload(加载所有图像和正文脚本时)。
init(); // show the div
window.onload = function(){
// finished loading, hide the div
}