如何强制 Internet Explorer 9 使用标准文档模式?我建立了一个网站,我发现 IE9 使用 quirks 模式来呈现网站页面。但我想使用标准模式进行渲染。
9 回答
<!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>
<html lang="en">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
元标记必须是头标记之后的第一个标记,否则将不起作用。
这个线程有一些非常重要的东西已经被触及但没有完全解释。HTML 方法(在头部添加元标记)仅适用于原始 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,但同样的方法适用于任何服务器端技术。只要您确保这是在呈现页面之前完成的最后一件事。
为了防止怪癖模式,定义一个'doctype',如:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
让 IE 以 IE9 文档模式呈现页面:
<meta http-equiv="x-ua-compatible" content="IE=9">
请注意,这"IE=edge"
将使 IE 以最新的文档模式呈现页面,而不是 IE9 文档模式。
确保您考虑到添加此标签,
<meta http-equiv="X-UA-Compatible" content="IE=Edge">
可能只允许与最新版本兼容。这一切都取决于你的图书馆
确保使用正确的文档类型。
例如。
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
要不就
<!doctype html>
并阅读并了解 IE 的兼容性模式和开发人员工具栏如何工作并为 IE 设置模式:
我尝试了另一种方法:
按 F12 键 然后,在下拉菜单的右侧,选择 Internet Explorer 版本 9。
就是这样,它对我有用。
我遇到了类似我的主页 index.jsp 包含以下行的问题,但即使在 IE 中呈现不正确。发现了问题,我已经在 index.jsp 中包含的所有文件中添加了代码。欢呼!有效。
因此,您需要在页面中包含的所有文件中添加以下代码,否则它将无法正常工作。
<!doctype html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=Edge">
</head>