为什么IE11会发出此警告:HTML1406:无效的标签开始:“<! - ?” - >

时间:2013-11-22 10:08:01

标签: html internet-explorer xhtml doctype internet-explorer-11

我的页面被编写并声明为XHTML 1.0 Strict。第一行是这样的:

<?xml version="1.0" encoding="utf-8" ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
        <html xmlns="http://www.w3.org/1999/xhtml">
            <head>

我相信XHTML 1.0严格是正确的但是IE11给出了这个警告:

HTML1406: Invalid tag start: "<?". Question marks should not start tags. File: default.aspx, Line: 1, Column: 2

任何人都知道这是否是我应该担心的事情?

2 个答案:

答案 0 :(得分:13)

问题在于,虽然您创建了一个包含XHTML文档类型的文件,但您已使用text/html媒体类型提供了该文件。

因此,IE11(以及其他浏览器)将该文件视为HTML文件,并使用其HTML解析器进行解析。 HTML文件中的XML声明无效,这就是浏览器告诉您的内容。如果您使用application/xhtml+xml媒体类型为文件提供服务,则浏览器会将该文件视为XHTML并使用其XML解析器来解析它。然后根据XML规则正确处理XML声明,IE11不会给你那个警告信息。

这里没有真正的问题。 HTML解析器会将声明视为bogus comment,并且无论如何都会继续。

有关详细信息,请阅读Sending XHTML as text/html Considered Harmful和/或HTML 4, HTML 5, XHTML, MIME types - the definitive resource

答案 1 :(得分:0)

如果你来到这里是因为你正在开发一个旧的(呃)ASP.NET Web Forms应用/网站...尝试打开Compatibility View ...那对我有用< / p>