它在Chrome中工作得很好,但在IE中它会回传代码......我认为它与怪癖模式有关,但我似乎无法找到确切的问题。
答案 0 :(得分:3)
我认为,这里的问题是您的文档被HTTP响应标头识别为UTF-8编码,但是以BOM到达,表明它是UTF-16编码的。 Internet Explorer 10和11为标题提供了更多权重,而不是BOM。因此,UTF-16文档被读取为UTF-8,这导致在几乎所有字节之后添加许多空字符,从而导致您的标记被解析为一般文本。
您可以在以下视图中查看BOM(FF FE
,“ÿþ”)和空字符(00
):
请注意您的doctype的表示形式。空字符会导致它被分解,以免被解析为:
<!DOCTYPE html>
但是,像这样(。表示空字符):
<.!.D.O.C.T.Y.P.E. .h.t.m.l.>
在整个整个文档中重复此模式,因此其中没有任何部分被解释为HTML,使其全部呈现为基本文本:
保存文档时,请确保以UTF-8格式保存。我还应该注意,Internet Explorer的继任者Microsoft Edge的行为方式并不一样。 Microsoft Edge使标题(声明UTF-16编码)优先于标题中的charset
指令,从而正确呈现页面。
我遇到了许多报告声称记事本(据说您使用过)总是插入BOM。我鼓励您在Web开发期间避免使用记事本作为编辑器。相反,请使用类似Visual Studio Code的内容。
答案 1 :(得分:0)
似乎IE(Edge)在显示此htm文件时出现了一些问题。 当我使用完全相同的源代码但作为html文件。 IE正在显示它。当我使用开发人员工具时,IE 10及以下版本也可以正确显示它。
您应该知道多个body标签导致一个错误。你一定要避免这个!!
编辑: 您也可以尝试将此添加到您的脑袋
<meta http-equiv="X-UA-Compatible" content="IE=10"/>