如何知道文档是否已加载
How to know if document has loaded
我有一段JS代码需要确定如果DOM已经加载。我知道有几种方法执行JS代码时,DOM已经加载,如:
$(document).ready(function() { ... }); // Jquery version
document.body.onload = function() { ... } // Vanila JS way
我正在寻找一些方法,看起来像
function isDOMLoaded() {
// Do something to check if DOM is loaded or not
// return true/false depending upon logic
}
PS: Update (Post Answer Accept)我碰巧看到jquery也使用相同的方法来检查DOM是否已加载。看一下jquery.ready()的实现
bindReady: function() {
if ( readyBound ) {
return;
}
readyBound = true;
// Catch cases where $(document).ready() is called after the
// browser event has already occurred.
if ( document.readyState === "complete" ) {
return jQuery.ready();
}
...
function isDOMLoaded(){
return document.readyState == 'complete';
}
你可以这样写
function isLoaded() {
return (document.readyState === 'ready' ||
document.readyState === 'complete')
}
检查ready
和complete
状态。
ready
只存在很短的时间,但当DOM准备好时确实反映。然而,当页面完全加载时,状态变为"完成"。如果您碰巧只检查ready,则函数将失败,因此我们也检查此状态。
这个怎么样?
var flgDOMLoaded=false; //Set a global variable
$(document).ready(function() {
flgDOMLoaded= true;
// Some code
});
function isDOMLoaded() {
return flgDOMLoaded; // return it.
//You don't need this function at all. You could just access window.flgDOMLoaded
}
相关文章:
- 是否同步加载了LINK元素
- 如何检查图像是否已加载
- 如何知道字体(@font face)是否已经加载
- 如何检测是否加载了iframe
- 如何知道是否加载了JavaScript(脚本)
- 如何在jsoup的帮助下跟踪我的网站是否加载到android设备上
- 用javascript从窗口获取文档,同时检查文档是否已加载
- 检查是否已加载原型
- 在检索数据时是否可以停止图像加载请求
- 是否有用于加载外部脚本的JavaScript库
- 我的jQuery加载请求是否被调用了两次
- AMD应用程序在浏览器中的加载速度是否快于CommonJS应用程序
- 检查HTML是否已加载到DIV中
- 如何检查mithril.js是否已加载
- 如何检查iframe是否加载在JavaScript中
- 动态图像加载是否会减少服务器过载
- Jquery检查加载是否成功
- 如何知道页面加载是否正确
- Javascript并发问题——我需要一种方法来检查文件加载是否已经完成
- 检查图像加载是否完成