什么是domready,onload,body,head的手段?

时间:2015-11-26 04:43:33

标签: javascript jquery onload domready

我对domready,onload,body,head有疑问。当我将一些js连接到头部时,它不起作用。否则,它在体内工作。

我注意到它在JSFIDDLE中提到过。

这有什么意义和不同之处?

你能解释一下吗?

2 个答案:

答案 0 :(得分:3)

访问DOM的Javascript必须不执行UNTIL已加载DOM。

在文档的<head>部分中运行的代码将在加载DOM之前执行,因此如果它尝试在DOM上运行,则DOM将只是空的。

在文档的<body>部分中运行的代码将在该脚本标记之前的任何DOM元素之后执行,但是在脚本标记之后的任何DOM元素之前执行。

如果您将<script>标记放在<body>标记之前</body>部分的最末端,那么当该脚本执行时,整个DOM就会就绪。

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>中有效,但在<head>中没有,那么在DOM准备好之前,您可能在<head>标记中过早地运行代码。您可以将其保留在<body>的末尾附近,也可以将其连接到其中一个加载事件,然后根据需要将其放在<head>标记中。

答案 1 :(得分:0)

<head> 包含有关页面属性,CSS和JavaScript的所有信息。虽然CSS和JavaScript也可以包含在体内。主管将包括​​Page的元信息,标题,基本URL等。

<body> 包含正文的实际内容。访问该网站的哪些用户实际上看到或与之互动。

DOM 是文档对象模型。它是基本结构,或者你可以说是页面所在页面的骨架。

domready 是DOM加载完成后立即触发的事件。例如:假设一个页面只有一个图像。它将等待解析图像标记。一旦收到图像标签,它就会被触发。它不会等待从源加载整个图像。

onload 是在加载完整(DOM +内容)页面时触发的事件。在donready中的上一个示例中,onload将等待从源中提取图像,然后将被触发。