我需要找出如果窗口已加载与否。
我想创建一个checkLoaded
函数将返回true
或false
,表示此,基于当我把它上。
<html>
<head>
function checkLoaded(){
//alert true if window is loaded or alert false
}
</head>
<body onload="checkLoaded()"> <!-- This should alert true -->
Loding window.
<script>
checkLoaded();// this should alert false;
</script>
</body>
</html>
我不想使用全局变量,我的窗口加载时设置。
有没有办法,我可以检查任何方式window
对象的状态,也许是财产?
我不想使用jQuery或任何其他外部库。
您可以使用document.readyState
属性来检查文件是否不听任何事件加载。 它将被设置为"complete"
检查文档和所有子资源被加载。 (这对应于load
的事件。)
function checkLoaded() {
return document.readyState === "complete";
}
如果你只是想检查,如果该文件已加载,而不用担心子资源,你也可以检查属性是"interactive"
。
function checkLoaded() {
return document.readyState === "complete" || document.readyState === "interactive";
}
这应该在目前的浏览器,但在旧版本的所有浏览器不支持。
你有2个可用的事件:
addListener(document, "DOMContentLoaded", function(){}); //Dom parsing is finished
addListener(window, "load", function(){}); //loading of all external stuff is done
你可以看到在这些差异在这里
也许简单地是这样的:
<html>
<script>
var loaded = false;
function checkLoaded(){
alert(window.loaded);
}
</script>
<body onload="window.loaded = true; checkLoaded()">
Loading window.
<script>
checkLoaded();
</script>
</body>
</html>
当窗口加载这将提醒:
(function(w) {
//private variable
var loaded = false;
w.onload = function() {
loaded = true;
};
w.checkLoaded = function() {
alert(loaded);
};
})(window);
现在,您可以拨打checkLoaded()
从您的应用程序的任何部分,它会返回true或false。
这是否帮助?
<script>
var loaded = false;
function checkLoaded(){
alert(loaded);
//alert true if window is loaded or alert false
}
</script>
<body onload="loaded = true;checkLoaded();"> <!-- This should alert true -->
Loding window.
<script>
checkLoaded();// this should alert false;
</script>
</body>
文章来源: Determining whether the window has loaded without using any global variables