javascript - 到达 html 页面的末尾等于 "page loaded"吗?

标签 javascript html iframe load

要测试页面是否已加载,可以在窗口上添加一个“加载”事件监听器: window.addEventListener ("load", function(){});

但在某些情况下,即使所有内容都已加载,此事件也永远不会触发:假设您想在页面加载时执行一些 JS,但该页面并没有像往常一样获取。它在没有设置其“src”属性的情况下加载到 iframe 中,而是通过执行 iframe.contentWindow.document.write ("<!DOCTYPE html><html>...</html>"); 在这种情况下,不会引发“加载”事件。

但是无论如何,在这个页面内,仍然有必要知道页面何时“加载”,开始一些 js 的东西。

我可以假设如果到达 html 的末尾,则页面已加载吗?如果答案是"is",则在 <script> 中启动 JS页面末尾的标签可以解决问题...

换句话说:在正常的加载工作流中(通过设置“src”属性),一些其他的“init”进程仍然在页面末尾异步运行(如 css 引擎 init 进程),而“load "仅当所有这些进程终止时才触发事件?使用 document.write 加载页面时是否也存在这些进程? ?

感谢您的关注。

最佳答案

标题中问题的答案是否定的。

实际上 DOMContentLoaded </body> 时触发已满足,但例如某些图像仍可能处于加载状态。 window.onload 在加载页面的所有内容和资源(如图像和 iframe 的内容)后触发。

当您使用 document.write() 写入任何文档时在该页面被解析后,write()隐含地打开文档,但不会关闭它。文档打开时无法触发“就绪”事件。因此在 document.write() 之后(s) 您必须手动关闭文档:

document.close();

关于javascript - 到达 html 页面的末尾等于 "page loaded"吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21610063/

相关文章:

javascript - 如何更新 indexedDB 中的数据?

javascript - JQuery .on 适用于第一个 html,但不适用于第二个(相同形式)

iframe 中的 Javascript 日期选择器错误

javascript - Youtube iFrame API 的 cueVideoById 在移动设备上不起作用?

javascript - 将jquery文本替换为TM字符实体,用jquery

Javascript 命名空间冲突

javascript - 如果鼠标到达屏幕最左边执行一个 Action

javascript - jquery 移动动态 View 丢失格式 css

html - Bootstrap 中的 iframe 中心

javascript - React Native 中的 async 关键字和 render() 是什么?它实际上做了什么