即使页面中定义了更多,getElementsByTagName('head')也会返回一个头

时间:2012-04-08 06:59:31

标签: javascript html dom browser

我知道即使文件中没有声明,网页也会隐含<head>标记。我只是在没有测试getElementsByTagName('head')时感到好奇,它确实返回了<head>标签。

然而,当我在页面中放置多个<head>时,它会返回一个统一的头部。这是为什么?

2 个答案:

答案 0 :(得分:1)

这是因为浏览器“更正”了您的HTML,以便始终包含一个<head>。否则您的HTML无效。

答案 1 :(得分:1)

据说HTML解析器非常宽容(我听说这个功能使它们更快,更不确定)解析和评估HTML时的错误。无论你给出什么,它都会解析它而没有任何错误,试图接近你的意思。所以你只应该有一个头元素。浏览器会将其更改为正确的格式,具体取决于实现方式。因此,当javascript执行时,它将在更正后返回现有的head元素。