html 中在body标签之后引入标签script等,浏览器的实现原理?

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>webpack-起步</title>
</head>
<body>
    
</body>
<script src="https://unpkg.com/lodash@4.16.6"></script>
<a href=""></a>
<div></div>
<script src="./src/index.js"></script>
</html>

f12控制台:
clipboard.png

注: <div>Hello webpack</div>是通过document.body.appendChild()添加的。
在body标签之后添加标签 ,然后通过appendChild 添加的元素会在最后的script之后 ,why?
eg
clipboard.png
f12控制台:
clipboard.png

阅读 4k
3 个回答

body之后添加的元素,浏览器实现 会在body内,
document.body.appendChild 是在index.js中的,所以元素总之添在<script src="./src/index.js"></script>之后,
解析顺序问题:
对于一个HTML文档,浏览器的解析顺序:按文档流,从上至下顺序解析页面结构,
当加载js文件时,浏览器会暂停解析,先执行js,因为JavaScript可能会影响DOM树的结构,所以浏览器在执行完后才能继续加载下面的HTML内容。

首先,浏览器有容错机制:body外不会报错;
其次,document.body.appendChild,添加div元素加入到body的尾部;

我在线下当面回答了,请采纳

body之后添加的元素,浏览器实现 会在body内,
document.body.appendChild 是在index.js中的,所以元素总之添在<script src="./src/index.js"></script>之后,
解析顺序问题:
对于一个HTML文档,浏览器的解析顺序:按文档流,从上至下顺序解析页面结构,
当加载js文件时,浏览器会暂停解析,先执行js,因为JavaScript可能会影响DOM树的结构,所以浏览器在执行完后才能继续加载下面的HTML内容。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题