强制 Internet Explorer 9使用标准文件模式

如何强制 Internet Explorer 9使用标准文件模式?我建立了一个网站,我发现 IE9使用怪异模式渲染网站页面。但是我想使用标准模式进行渲染。

143960 次浏览

确保使用正确的 doctype。

例如。

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">

或者只是

<!doctype html>

以及 ,了解 IE 的兼容模式和开发工具栏是如何工作的,以及如何为 IE 设置模式:

将 doctype 作为 html 文档的第一行

<!DOCTYPE html>

你可在此找到有关 Internet Explorer 文件兼容性的详细说明:

 <!doctype html>
<meta http-equiv="X-UA-Compatible" content="IE=Edge">

这使得每个版本的 IE 都使用其标准模式,因此 IE9将使用 IE9标准模式。(如果你想让新版本的 IE 特别使用 IE9标准模式,你可以用 9代替 Edge。但很难理解你为什么希望这样。)

有关解释,请参阅 http://hsivonen.iki.fi/doctype/#ie8(它看起来相当凌乱,但这是因为 IE 的行为是凌乱的)。

为了防止怪癖模式,定义一个“ 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文档模式。

关于这个线程,有一些非常重要的东西已经被触及,但没有完全解释。HTML 方法(在头部添加一个 meta 标记)只能在原始 HTML 或非常基本的服务器页面上一致地工作。我的网站是一个非常复杂的服务器驱动的网站与母版页,主题和很多第三方控件等。我发现其中一些控件通过编程将自己的标签添加到最终的 HTML 中,这些标签被推送到头标签开头的浏览器中。这有效地使 HTML 元标记失去了作用。

如果你不能打败他们,那就加入他们。对我来说,唯一有效的解决方案是在主页的 pre-render 事件中完全做同样的事情:

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,但同样的方法也适用于任何服务器端技术。只要您确保这是在页面呈现之前完成的最后一件事。

请确保您考虑到添加这个标记,

<meta http-equiv="X-UA-Compatible" content="IE=Edge">

可能只允许与最新版本兼容。这完全取决于您的库

<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />

Meta 标记必须是 head 标记之后的第一个标记,否则它将无法工作。

我尝试了另一种方法:

按 F12键 然后,在下拉菜单的右手边,选择 Internet Explorer 版本9。

就是这样,对我很有效。

我曾经遇到过这样的问题,比如我的主页 index.jsp 包含了下面这行内容,尽管在 IE 中渲染是不合适的。找到了问题所在,并在 index.jsp 中包含的所有文件中添加了代码。万岁!成功了。

因此,你需要添加下面的代码,在所有的文件,你包括到网页,否则它不会工作。

    <!doctype html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=Edge">
</head>