IE显示我的代码而不是我的网页,我该如何解决这个问题?

时间:2015-05-28 02:14:57

标签: javascript html internet-explorer cross-browser

它在Chrome中工作得很好,但在IE中它会回传代码......我认为它与怪癖模式有关,但我似乎无法找到确切的问题。

my trouble page

2 个答案:

答案 0 :(得分:3)

我认为,这里的问题是您的文档被HTTP响应标头识别为UTF-8编码,但是以BOM到达,表明它是UTF-16编码的。 Internet Explorer 10和11为标题提供了更多权重,而不是BOM。因此,UTF-16文档被读取为UTF-8,这导致在几乎所有字节之后添加许多空字符,从而导致您的标记被解析为一般文本。

您可以在以下视图中查看BOM(FF FE,“ÿþ”)和空字符(00):

enter image description here

请注意您的doctype的表示形式。空字符会导致它被分解,以免被解析为:

<!DOCTYPE html>

但是,像这样(。表示空字符):

<.!.D.O.C.T.Y.P.E. .h.t.m.l.>

在整个整个文档中重复此模式,因此其中没有任何部分被解释为HTML,使其全部呈现为基本文本:

enter image description here

保存文档时,请确保以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"/>
相关问题