html的奇怪问题:标记是正确的但开发工具显示<title>移动到&lt; body&gt; </title>

时间:2011-10-29 23:42:02

标签: html html-parsing

我有这个奇怪的问题。我在后端使用Codeigniter 3.0-dev和Smarty 3.1.4,但我认为它不相关。

我有这个非常简单的html:

<!DOCTYPE HTML>
<html>
<head>
    <title>some page</title>
</head>
<body>
asd
</body>
</html>

现在。当我在任何浏览器(试过Opera 10.52,Firefox 7.0.1,Chrome 14和15,IE9)上查看此页面的来源时,标记与上面完全相同。现在,当我使用firebug或chrome的开发工具时,它会移动<body>中的标题标记,如果我在<head>中有meta或其他内容,则会移动<body>中的这些项目以及。 firefox的firebug告诉我这个:

<html>
<head></head>
<body>

<title>test</title>
asd
</body>
</html>

为什么会这样?有什么想法吗?

2 个答案:

答案 0 :(得分:6)

如果解析器在移动的元素之前看到某些内容只允许在主体中允许,那么看起来位于标记head中的元素可能会在DOM中的body内结束HTML。例如,文件开头的 double BOM(字节顺序标记)可能不会显示在View Source中,但会导致解析器认为它已输入html正文部分,标记中的所有head元素都将以DOM中的body结尾。

答案 1 :(得分:0)

Alohci说,加上Firebug和Chrome调试器经常移动东西以适应自己。在那些调试器中查看时,源会出现错误。