我对 domready、onload、body、head 有疑问。当我将一些 js 链接到 head 时,它不起作用。否则,它在体内工作。
我在 JSFIDDLE 中注意到,它提到了。
这和区别的意义是什么?
你能解释一下吗?
我对 domready、onload、body、head 有疑问。当我将一些 js 链接到 head 时,它不起作用。否则,它在体内工作。
我在 JSFIDDLE 中注意到,它提到了。
这和区别的意义是什么?
你能解释一下吗?
访问 DOM 的 Javascript 在加载 DOM 之前不得执行。
在文档部分中运行的代码<head>
将在 DOM 加载之前执行,因此如果它尝试对 DOM 进行操作,则 DOM 将只是空的。
在文档部分中运行的代码将<body>
在该脚本标记之前的任何 DOM 元素之后执行,但在该脚本标记之后的任何 DOM 元素之前执行。
如果您将标签放在标签之前的部分<script>
末尾,那么当该脚本执行时整个 DOM 将准备就绪。<body>
</body>
DOMContentLoaded
(jsFiddle 调用onDomReady
)是一个在 DOM 现在加载并且可供脚本访问时触发的事件。如果您在 DOMContentLoaded 事件触发时运行代码,那么 DOM 将准备好让您的代码在此时访问。
window.onload
是一个在现在加载 DOM 并且页面的 HTML 中指定的任何资源也完成加载(如图像)时触发的事件。这总是在 DOMContentLoaded 事件之后触发。
你可以在这里看到这个问题的进一步描述:pure JavaScript equivalent to jQuery's $.ready() how to call a function when the page/dom is ready for it
如果代码在 中有效<body>
,但在 中无效,那么您可能在 DOM 准备好之前<head>
过早地在标签中运行代码。<head>
您可以将其放在接近末尾的位置,<body>
也可以将其连接到加载事件之一,然后可以根据需要将其放入<head>
标签中。
<head>
包含有关页面属性、CSS 和 JavaScript 的所有信息。虽然 CSS 和 JavaScript 也可以包含在正文中。Head 将包括 Page 的元信息、标题、基本 URL 等。
<body>
包含正文的实际内容。访问网站的用户实际看到或与之交互。
DOM
是文档对象模型。它是基本结构,或者您可以说页面所在的页面的骨架。
domready
是一个在 DOM 完成加载后立即触发的事件。例如:假设一个页面只有一个图像。它将等待图像标签被解析。一旦收到图像标签,它就会被触发。它不会等待从源加载整个图像。
onload
是在加载完成(DOM + 内容)页面时触发的事件。在前面的示例中donready
,onload
将等待从源中获取图像,然后将其触发。