在HTML解析中,<script>标记是否会插入到DOM树中?</script>

时间:2012-09-19 17:36:03

标签: html html-parsing dom

以下面的例子为例:

<!DOCTYPE html>
<html>
<body>

<h1>My First Heading</h1>

<script>
document.write("<p>My First JavaScript</p>");
</script>

<h1>My Second Heading</h1>

</body>
</html>

Element body的孩子是什么?它是否包含script,其本身包含p,还是会直接包含p

1 个答案:

答案 0 :(得分:3)

都不是。

它将包含script元素,然后就是脚本写入文档的p元素。

如果检查最终在body元素中的节点,可以得到如下内容:

[object Text]
[object HTMLHeadingElement]
[object Text]
[object HTMLScriptElement]
[object HTMLParagraphElement]
[object Text]
[object HTMLHeadingElement]
[object Text]

DOM元素的确切命名各不相同,文档中空格的文本节点因浏览器的解析方式而异。例如,IE7和IE8仅报告四个对象(h1,script,p,h1),空格不包含在元素中:

[object]
[object]
[object]
[object]

演示:http://jsfiddle.net/J69UA/1/