html - 为什么我们会在简单的文档中得到空文本节点

标签 html css internet-explorer-9 textnode

给出这个简单的代码

<!Doctype html>
<html>
<head>
<title>Start Here</title>
</head>
<body>
<script type="text/javascript">
document.write("<h1>Start Here!</h1>");
</script>
</body>
</html>

我在 IE9 中得到很多空文本节点,如下所示。

Image

在解决了类似的问题后,我尝试了以下方法。

  • 关闭所有标签。
  • 删除所有空格。
  • 使用无 BOM 的 UTF
  • EOL = unix 格式

这没有帮助。没什么大不了的,只是想知道为什么会这样。

最佳答案

所有字符(包括换行符)都会生成文本节点。

如果删除换行符,空文本节点将消失。例如更改为

<head>
<title>Start Here</title>

<head><title>Start Here</title>

将从 head block 的开头删除空文本节点。

据我所知,您也无法控制 IE9 开发人员工具栏中空文本节点的可见性。作为解决方法,您可以安装并使用 Firebug Lite这为您提供了更清晰的元素树表示:

Firebug Lite in IE9

请注意,空文本节点只是文档结构的正常部分,您无需担心 - 只需要注意,即使是换行符也会生成它们。

关于html - 为什么我们会在简单的文档中得到空文本节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12949546/

相关文章:

javascript - 名为 "open"的函数加载一个新页面 - 尝试使用内联 JS 更改 iframe src

javascript - JS - 子元素不听委托(delegate)事件

jquery - 使用 jQuery 加载 JSON 时 IE9 的行为非常奇怪

html - CSS 旋转不居中

html - 如何水平和垂直显示多个复选框 css

internet-explorer-9 - Internet Explorer 9 策略设置影响 window.postMessage

delphi - 发生日期格式故障 - 可能的原因以及最可能的预防或消除方法?

html - z-index 在 IE 中工作,但在 Edge 中不起作用

asp.net - 有什么简单的方法可以在 html 中应用同一区域的 "CSS Style Comparision"吗?

javascript - 在 CSS 中使用 flex 样式