加载页面时运行代码
Run code when the page is loaded
这里或那里都没有回答这个问题。这些问题措辞不佳,答案都是"使用 DOMReady"。
我想确保仅在页面完成加载时才运行代码。我无法更改HTML文件本身,但如果可以的话,我会做一些相当于这样的事情:
<!DOCTYPE html>
<html>
<head>
<script>window.loaded=false;</script>
</head>
<body onload="window.loaded=true;">
<!-- ... -->
</body>
</html>
然后在我的代码中:
if (window.loaded) { run(); }
else { document.addEventListener("load", run); }
这将完全实现我想要的。不幸的是,我无法修改 HTML,这意味着我正在寻找一种方法来确定文档是否已仅从 JS 代码加载(而不是 DOM 是否已准备就绪)。
我环顾四周,但到目前为止,我发现的都是围绕DOMReady展开的。真的没有人找过这个吗?
正如Dr.Molle指出的那样,document.readyState
包含你所追求的属性:
在文档加载时返回"正在加载",在
document . readyState
完成解析但仍加载子资源后返回"交互式",在加载后返回"完成"。
当此值更改时,
readystatechange
事件将在 Document 对象上触发。
事件触发和 readyState 更改的顺序在 HTML5 规范的解析末尾部分定义。总结:
- 文档
readyState
设置为在分析完成后立即"interactive"
。 DOMContentReady
事件几乎立即触发(在确定需要加载哪些资源之后)。- 这些资源已加载。
- 文档
readyState
设置为"完成",并触发load
事件。
当
DOM 和所有资源(脚本、图像、样式表等)完成加载时,窗口的 onload-event 会触发:
window.onload=function()
{
//run code
}
相关文章:
- AJAX调用运行C代码的最佳实践
- 在经过一段时间或满足条件后运行代码
- 在Firefox restartless插件中,当一个新窗口打开时,我如何运行代码(监听窗口打开)
- 如果调试器关闭,Internet Explorer将出现运行代码问题
- JQuery 帖子未在 PHP 文件中运行代码
- 当ajax请求发生时运行代码的Chrome扩展
- 当我运行代码时,我得到以下结果 []对象对象] [对象对象],但应该给我一个有序数组
- 仅当客户端连接到Meteor服务器时才运行代码
- 在.each()循环中的ajax完成后,Jquery运行代码
- node.js和Cygein,我该如何运行代码
- 未访问全局变量,未运行代码
- Meteor - 在客户端上的异步回调的 for 循环后运行代码
- 运行代码以在Android应用程序中单击javascript按钮?尝试在页面上抓取回复按钮联系信息 craigslist
- 函数结束时如何运行代码
- JS 在不满足条件时在 if 语句中运行代码段
- 在 Ember 视图参数更改上运行代码
- 如何在 YUI 模块中运行代码
- 如何在未在 iframe 中定义的 iFrame 中运行代码
- 在后台运行代码,同时显示警报
- 加载页面时运行代码