如何强制Internet Explorer 9使用标准文档模式?我建立了一个网站,发现IE9使用了怪癖模式来呈现网站页面。但是我想使用标准模式进行渲染。
Answers:
<!doctype html>
<meta http-equiv="X-UA-Compatible" content="IE=Edge">
这使得IE的每个版本都使用其标准模式,因此IE 9将使用IE 9标准模式。(如果相反,您希望较新版本的IE也专门使用IE 9标准模式,则可以替换Edge
为9
。但是很难理解为什么要这么做。)
有关说明,请参见http://hsivonen.iki.fi/doctype/#ie8(它看起来很杂乱,但这是因为IE的行为杂乱)。
DOCTYPE
在HTML
标记之前的声明之外还有其他内容,那么它也不起作用。
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
meta标签必须是head标签之后的第一个标签,否则它将不起作用。
关于此线程,有一些非常重要的内容已被涉及但尚未完全解释。HTML方法(在头部添加一个meta标记)仅在原始HTML或非常基本的服务器页面上始终有效。我的网站是一个非常复杂的服务器驱动的网站,具有母版页,主题背景和许多第三方控件等。我发现,其中一些控件是通过编程方式将其自己的标签添加到最终HTML中的,这些标签已被推送到浏览器位于head标签开头。这实际上使HTML元标记无效。
好吧,如果您无法击败他们,那就加入他们。唯一适用于我的解决方案是在母版页的预渲染事件中执行完全相同的操作,例如:
Private Sub Page_PreRender(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.PreRender
Dim MetaTag As HtmlMeta = New HtmlMeta()
MetaTag.Attributes("http-equiv") = "Content-Type"
MetaTag.Attributes("content") = "text/html; charset=utf-8;"
Page.Header.Controls.AddAt(0, MetaTag)
MetaTag = New HtmlMeta()
MetaTag.Attributes("http-equiv") = "X-UA-Compatible"
MetaTag.Attributes("content") = "IE=9,chrome=1"
Page.Header.Controls.AddAt(0, MetaTag)
End Sub
这是VB.NET,但相同的方法适用于任何服务器端技术。只要确保这是在呈现页面之前完成的最后一件事。
我尝试了另一种方法:
按F12键,然后在下拉菜单的右侧,选择Internet Explorer版本9。
就是这样,它对我有用。
确保使用正确的文档类型。
例如。
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
要不就
<!doctype html>
并阅读并了解IE的兼容模式和开发人员工具栏如何工作以及IE的设置模式:
我遇到了这样的问题,例如我的主页index.jsp包含以下行,但是即使在IE中渲染也不正确。找到了问题,我将代码添加到了index.jsp中包含的所有文件中。欢呼!有效。
因此,您需要在页面中包含的所有文件中添加以下代码,否则将无法正常工作。
<!doctype html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=Edge">
</head>