我需要在收到页面内容(整个 HTML 元素)后立即触发脚本,但还不必呈现它。
我认为只有一个简单的<script>
标签在我的页面顶部执行一些代码就可以了?
用不同的方式表述这个问题:DOM 就绪是否意味着所有元素和资源都已被拉取和呈现?
我需要在收到页面内容(整个 HTML 元素)后立即触发脚本,但还不必呈现它。
我认为只有一个简单的<script>
标签在我的页面顶部执行一些代码就可以了?
用不同的方式表述这个问题:DOM 就绪是否意味着所有元素和资源都已被拉取和呈现?
DOM 就绪意味着所有 HTML 都已被浏览器接收并解析为 DOM 树,现在可以对其进行操作。
它发生在页面完全呈现之前(因为外部资源可能尚未完全下载 - 包括图像、CSS、JavaScript 和任何其他链接资源)。
实际事件称为DOMContentLoaded
。
DOMready 表示:DOM 结构已经内置在浏览器内存中。异步页面已经开始渲染,但它可能还没有完成,因为图像、视频等外部资源将在稍后完成加载。
您也可以尝试使用这些功能
window.onload = function(){
//your code
}
或者
body.onload = function(){
//your code
}
如果您不想使用 jQuery。
不过要小心,DOM 加载并不意味着页面加载,iframes、javascript、图像和 css 可能会在该事件之后加载。
关于 DOM 事件Javascript 教程有一个很好的教程
我需要在收到页面内容(整个 HTML 元素)后立即触发脚本,但还不必呈现它。
我认为只有一个简单的标签在我的页面顶部执行一些代码就可以了?
这是可能的,然后你想要的DOMContentLoaded
事件。您可以这样使用它:
<head>
<!-- … --->
<script>
window.addEventListener('DOMContentLoaded',function () {
//your code here
});
</script>
</head>
用不同的方式表述这个问题:DOM 就绪是否意味着所有元素和资源都已被拉取和渲染?
没有“ DOM 就绪”事件。您可能会想到jQuery 的.ready()
,或者这个术语的一些类似奇怪的用法(例如,Google 也有一个类似名称的专有事件,它们指的是)。
DOMContentLoaded
但是,对于该事件(引用MDN):
DOMContentLoaded 事件在初始 HTML 文档完全加载和解析后触发,无需等待样式表、图像和子框架完成加载。
文档对象模型 (DOM) 是一种跨平台且独立于语言的约定,用于表示 HTML、XHTML 和 XML 文档中的对象并与之交互。[1] 每个文档的节点都组织成树状结构,称为 DOM 树