确定是否在不使用任何全局变量的情况下加载了窗口
Determining whether the window has loaded without using any global variables
我需要了解窗口是否已加载。
我想创建一个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";
}
这应该适用于当前浏览器,但并非所有浏览器的旧版本都支持。
您有两个可用事件:
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。
相关文章:
- 我希望在不替换现有变量的情况下恢复localStorage中的变量
- 如何在没有ajax的情况下将javascript动态数据发送到php变量
- 如何在不保存到其他变量的情况下更改JavaScript中的值
- 在我的情况下,使用带有变量失败的 jquery 选择器
- 连接变量,在我的情况下背景样式损坏
- AngularJS在不使用变量的情况下将服务注入模块中,这样就可以缩小它
- 在这种情况下,如何使变量全局可访问
- 确定是否在不使用任何全局变量的情况下加载了窗口
- 如何在不设置全局变量的情况下确定是否已调用函数
- 让 javascript 将(默认情况下)未声明的变量声明到当前本地范围(基于首次使用)而不是全局范围
- 如何在不声明全局变量的情况下将值从一个函数传递到另一个函数?
- JavaScript 在没有全局变量初始化值的情况下得到错误
- 为什么Google闭包编译器在原始命名空间为空的情况下向全局命名空间添加变量
- 如何在不使用全局变量的情况下将变量传递给字符串化函数
- 在不拥有页面的情况下访问全局JS变量
- 为什么定义在函数内部的x在我没有声明它为变量的情况下变成了一个全局变量?
- 在不使用全局变量的情况下重用knockout.js的viewModel
- 如何从browserify/babelify导出全局变量,以便在没有browserfy的情况下在项目中使用
- 将全局变量从下拉菜单选择传递给函数
- 如何在没有全局变量的情况下访问此变量