为了账号安全,请及时绑定邮箱和手机立即绑定

请问DOM树是如何加载的?

请问DOM树是如何加载的?

缥缈止盈 2018-11-14 13:10:07
javascript高级程序设计讲到IE中的错误时提到操作中止(operation shorted)这个概念:在修改尚未加载完成的页面会发生错误。示例代码为:<body>     <p></p>     <div>         <script>             document.body.appendChild(document.createElement("div"));        </script>     </div></body>当<script>被包含在某元素中,且JS代码要使用DOM方法修改其父元素或祖先元素,会发生操作中止错误(因为只能修改已经加载完的元素)。而改为document.body.insertChild(document.createElement("div"),document.body.firstChild);就能避免错误。说是新<div>添加到document.body开头而不是末尾,就没有错误。
查看完整描述

1 回答

?
慕娘9325324

TA贡献1783条经验 获得超4个赞

浏览器加载页面时,碰到 js 代码会进行加载和解析,这时候就会中止其他代码的解析和渲染。这就是为什么我们一般把 js 代码放在页面尾部的原因,不组织页面文档结构的加载,而且可以对所有的 DOM 元素进行操作。

上面代码中,在执行那一句 js 代码时,整个页面的 html 结构还没有加载完成,所以浏览器并不知道 body 的末尾位置,而 body 开头位置已经确定了,所以新 div 可以添加到开头而不能添加到结尾。


查看完整回答
反对 回复 2018-12-07
  • 1 回答
  • 0 关注
  • 762 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信