强制 IE8 进入 IE7 兼容模式
Posted
技术标签:
【中文标题】强制 IE8 进入 IE7 兼容模式【英文标题】:Force IE8 Into IE7 Compatiblity Mode 【发布时间】:2010-11-04 02:53:24 【问题描述】:有没有办法使用 .NET 或 javascript ?
【问题讨论】:
另外,我可以使用 IIS 设置完成此操作吗? 我想我可以看到旧页面的价值,但请不要创建依赖 IE7 的新页面......让野兽死吧。 IE8 有 IE7 没有的错误,并且在切换到兼容模式时会消失:***.com/questions/1070178/… 我的网站受到该错误的影响,我宁愿告诉 IE8 正确显示它IE7 和其他所有浏览器都会在我的 .htaccess 文件中添加一行,而不是在我的实际页面中添加特定于浏览器的解决方法。 添加X-UA-Compatible标头也去掉了“兼容性视图”按钮,看起来更专业的IMO。用户不必弄清楚哪种模式最适合您的网站。让网站支持所有主流浏览器是网站管理员的工作。 【参考方案1】:如果您将此添加到您的元标记中:
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
IE8 会像 IE7 一样呈现页面。
【讨论】:
你是对的 - 但尝试在开始 标记之后立即添加它。当它位于页面下方时,我遇到了问题。 如果我不将此行添加到我网站上的每个 aspx 页面会怎样。我可以用 IIS 来做吗? @Bryan:不。这就是我们使用母版页的原因。 请参阅下面的 DDaviesBrackett 的回答以在站点级别进行操作 这个解决方案的问题是你不能把它放在<!--[if IE]>
风格的条件句中——它必须是head元素中的第一个标签。这意味着它并不是一个真正长期可行的解决方案,因为它甚至会迫使 IE9 进入 IE7 渲染模式。除非有人知道解决方案...【参考方案2】:
我现在可能已经找到了。 http://blog.lroot.com/articles/the-ie7-compatibility-tag-force-ie8-to-use-the-ie7-rendering-mode/
网站说要添加这个元标记:
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7">
或将其添加到 .htaccess
Header set X-UA-Compatible: IE=EmulateIE7
【讨论】:
感谢 htaccess !【参考方案3】:它甚至比这更简单。使用 html,您只需将此元标记添加到您的页面(页面上的第一件事):
<meta http-equiv="X-UA-Compatible" content="IE=7" />
如果您想使用 .net 来执行此操作,您只需发送带有该元信息的 HTTP 请求的标头即可。不过,这需要刷新页面才能工作。
此外,您可以在此处查看类似的问题: Compatibility Mode in IE8 using VBScript
【讨论】:
【参考方案4】:你可以设置an HTTP header,它会强制IE8使用IE7兼容模式。
【讨论】:
我无法使用元标记,但添加此标头就可以了。谢谢!【参考方案5】:对此的注释:
IE 8.0s 仿真只承诺以相同的方式显示页面。存在可能导致功能中断的细微差异。我最近遇到了一个问题。在 IE 7.0 使用 IE 8.0 中称为“anonymous()”的 javascript 包装器函数的地方,包装器的名称不同。
所以不要指望像 JavaScript 这样的东西“正常工作”,因为你打开了仿真。
【讨论】:
无论浏览器版本如何,编写依赖于匿名函数“名称”的代码都不是可靠的依赖项。【参考方案6】:如果您想在 IE 8 标准模式下切换 IE 8 页面呈现,请再做一个
<meta http-equiv="X-UA-Compatible" content="IE=100" /> <!-- IE8 mode -->
【讨论】:
【参考方案7】:您可以在 web.config 中进行操作
<httpProtocol>
<customHeaders>
<add name="X-UA-Compatible" value="IE=7"/>
</customHeaders>
</httpProtocol>
与上述解决方案相比,我有更好的结果。不知道为什么这没有作为解决方案给出。 :)
【讨论】:
+1 好的解决方案,如果您使用的是 IIS7 - iis.net/ConfigReference/system.webServer/httpProtocol 当您无法更改页面内容或直接更改页面标题时的绝佳解决方案。 我认为 HTTP 标头会覆盖任何元标记,因此如果您可以选择,它们应该是首选解决方案。【参考方案8】:这可以在 IIS 中完成: http://weblogs.asp.net/joelvarty/archive/2009/03/23/force-ie7-compatibility-mode-in-ie8-with-iis-settings.aspx
同时阅读 cmets: 2009 年 4 月 1 日,星期三,上午 8:57,作者:约翰·摩尔
快速跟进。只要我使用 IE=EmulateIE7 值,这对我的网站非常有用。尝试使用 IE=7 导致我的网站在 IE8 上运行时基本上挂起。
【讨论】:
【参考方案9】:我的代码有这个标签
meta http-equiv="X-UA-Compatible" content="IE=7" />
有没有一种方法可以让我跳过这个标签,而布局却可以很好地显示出来 使用该标签,显示器将在 IE 7 上运行,但我想在其他版本中运行它...
【讨论】:
以上是关于强制 IE8 进入 IE7 兼容模式的主要内容,如果未能解决你的问题,请参考以下文章