如何在 IE11 中恢复“浏览器模式”?

Posted

技术标签:

【中文标题】如何在 IE11 中恢复“浏览器模式”?【英文标题】:How to bring back "Browser mode" in IE11? 【发布时间】:2013-07-26 02:52:20 【问题描述】:

更新:旧问题仅适用于 IE11 预览版;浏览器模式已在 IE11 的最终版本中返回。但是有一个问题:它几乎没用,因为它不模拟条件 cmets。例如,如果您使用它们在旧版 IE 中启用 html5 支持,您将无法再在 IE11 中调试您的网站。

        <!--[if lte IE 8]>
            <script src="html5shiv.js"></script>
        <![endif]-->

阅读另一个*** question 和IE bug tracker issue。微软从未对此做出回应,所以看起来他们引入了这个错误是为了引导人们购买 BrowserStack 订阅。条件评论模拟在预览版中运行良好。

原始问题: 在 Windows 7 上安装 IE11 预览版时,它带有老式的 F12 工具,允许更改浏览器模式。

但是,如果您进入“工具”菜单并选择“F12”开发人员工具,它将被新的开发人员工具替换,并且“浏览器模式”不再可用。

恢复它的唯一方法是卸载 IE11 并重新安装。

在 IE11 中是否有更简单的方式在浏览器模式之间切换?

【问题讨论】:

对于特定于 MS 的论坛来说,这似乎是一个很好的问题(或者可能是错误报告!) @Mathletics - 这不是一个错误,这是故意的。 你到底是怎么拿到第一个屏幕的?为什么我按 F12 会出现第二个屏幕。 @Panique - 我第一次安装 IE11 时它就在那里。可能是因为我在 IE10 中总是有 F12 工具,所以它以某种方式迁移了这个设置。然后我可以使用 F12 键来显示和隐藏它。只是不要转到工具菜单。如果要恢复,请先卸载 IE11 更新。为我工作。 从 Sitepoint.com 发帖:IE11: Browser modes return (in Windows 8.1). 【参考方案1】:

[更新]

原始问题和以下答案专门适用于 IE11 预览版

IE11 的最终发行版确实提供了从开发工具中的 Emulation 选项卡切换浏览器模式的能力:

话虽如此,我在这里(和其他地方)给出的避免使用兼容模式进行测试的建议仍然有效:如果您想测试您的网站与旧 IE 版本的兼容性,您应该始终在这些 IE 版本的真实副本。

但是,这确实意味着不再需要 @EugeneXa 的回答中描述的注册表黑客来恢复旧的开发工具,因为新的开发工具现在确实具有他所缺少的功能。


[原始答案]

IE 开发人员故意弃用了切换浏览器模式的功能。

人们在开发工具中切换模式的原因并不多,但主要原因之一是他们想在旧版 IE 中测试他们的网站。不幸的是,IE 提供的各种兼容模式从未真正完全兼容旧版本的 IE,使用兼容模式进行测试根本不足以替代在 IE8、IE9 等的真实副本中进行测试。

IE 开发人员已经认识到这一点,并故意让开发人员更难犯此错误。

最好的做法是使用每个 IE 版本的真实副本来测试您的网站。

各种兼容模式在 IE11 中仍然可用,但只有在站点明确声明它想要在兼容模式下运行时才能访问。您可以通过在页面上包含 X-UA-Compatible 标题来做到这一点。

并且文档模式下拉框仍然可用,但只会提供“边缘”选项(即当前 IE 版本可用的最佳模式,因此 IE11 中的 IE11 模式)或页面正在运行。

因此,如果您转到以兼容模式加载的页面,您将可以选择在该页面加载的特定兼容模式或 IE11“边缘”模式之间切换。

如果您转到以 IE11 模式加载的页面,那么您将只会获得“边缘”模式,而不会提供其他任何内容。

这意味着它仍然允许您测试兼容模式页面如何响应更新以在 Edge 模式下工作,无论如何,这大约是文档模式下拉框唯一真正合法的用例。

IE11 文档模式下拉框旁边有一个i 图标,可将您带到modern.ie 网站。这样做的目的是鼓励您下载 MS 为我们提供的虚拟机,以便使用每个 IE 版本的真实副本来测试我们的站点。这将为您提供更准确的测试体验,并且被强烈鼓励作为一种比通过在开发工具中切换模式进行测试更好的做法。

希望对你有所解释。

【讨论】:

虽然使用 MS 提供的免费 VM 进行测试绝对更好,但也更耗时。我必须启动虚拟机,我必须在几个不同的虚拟机之间切换,并且每次激活计时器用完时我都必须重新安装小虫子,因为它们没有提供任何激活密钥。不过,我想我们应该感谢他们真的不厌其烦地设置这些虚拟机。您可以使用旧的 F12 兼容模式发现很多问题,然后使用虚拟机进行验证。但我离题了。 我理解他们为什么认为弃用兼容模式下拉菜单是个好主意,但我认为这对任何真正花时间确保他们的网站在 IE 中运行的开发人员来说也是一记耳光。正如其他人所提到的,使用兼容性检查器检查明显的错误效果很好。另外,您还拥有一套不错的开发工具的优势(与 IE7 甚至 8 中的垃圾工具相比)。我还练习检查 VM,任何优秀的开发人员都会这样做。但这种变化只是意味着更少的开发人员关心让事情在旧 IE 中运行。 顺便说一句,我不应该在虚拟机中加载完整的操作系统来测试愚蠢的浏览器。如果微软真的希望开发人员确保他们的东西在旧版本的 IE 中工作,他们应该为此提供更好的免费选项。否则,他们似乎在鼓励开发人员忽略旧版本,只担心解决新版本中的错误。 不...BrowserStack不是免费的,虚拟机使用起来很麻烦(别告诉我,我已经全部设置好了,并且必须每3个月重置一次,等等......他们很痛苦)。我对 Modern.ie 和 Microsoft 的产品了如指掌。微软正在取消一种简单、免费的方法,该方法适用于大多数开发人员需要测试的大约 90% 的东西,并用笨拙的虚拟机或付费服务取而代之。颜色让我印象深刻。我是 Microsoft 的支持者之一,主要在 .NET 商店工作。我认为这很愚蠢。 我认为这是:“我们搞砸了,我们给了你错误的工具来处理我们的错误,所以现在我们要向你指出可以给我们钱的工具。”跨度> 【参考方案2】:

虽然使用虚拟机是测试旧 IE 的最佳方式,但可以通过编辑注册表恢复老式 F12 工具,因为激活新的 F12 工具时 IE11 会覆盖此值。

感谢很棒的Dimitri Nickolaѕ 这个技巧。

这对我有用(保存为 .reg 文件并运行):

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Toolbar\WebBrowser]
"ITBar7Layout"=hex:13,00,00,00,00,00,00,00,00,00,00,00,30,00,00,00,10,00,00,00,\
  15,00,00,00,01,00,00,00,00,07,00,00,5e,01,00,00,00,00,00,00,00,00,00,00,00,\
  00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
  00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
  00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
  00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
  00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
  00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
  00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
  00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
  00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
  00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
  00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
  00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
  00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
  00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
  00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
  00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
  00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
  00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
  00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
  00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
  00,00,00,69,e3,6f,1a,8c,f2,d9,4a,a3,e6,2b,cb,50,80,7c,f1

【讨论】:

我不知道是对有人设法破解 IE11 以恢复旧的开发工具感到印象深刻,还是对他们愿意牺牲所有令人惊叹的新东西感到沮丧。 IE11 开发工具只是为了能够切换浏览器模式。 :-( 这与微软生产非 W3C 标准兼容浏览器的传统有关。 IE10 或 11 没有任何问题——它们是很好的现代浏览器。都是关于 9 和 8 以及直到最近才 7 和 6。由于在 Windows 8 中无法将它们与现代 IE 一起安装,因此需要良好的仿真工具。 这里的技巧很有趣,但显然不受 Microsoft 支持,并且可能会产生意想不到的副作用。 我不认为这是毫无意义的。我在测试 IE 时的工作流程是首先使用 F12 兼容模式并充实我发现的任何问题,然后我会遇到启动 VM 的麻烦。这比在(不同的)VM 中进行所有 IE 测试要高效得多。 为了让这个 reg hack 对我有用,我还必须更新 ITBar7Layout64 值。然后它工作了,但是关闭和打开 F12 工具使 IE 崩溃:) 幸好我备份了 reg 密钥。【参考方案3】:

Microsoft 有一个专门用于此目的的工具:Microsoft Expression Web。有一个免费版本,里面有一堆没人想要的 FrontPage/Dreamweaver 之类的垃圾。重要的是它具有出色的浏览器测试功能。我正在使用 Internet Explorer 11 运行 Windows 8.1 Pro(最终版本,不是预览版)。我得到了这些本地浏览器:

Internet Explorer 6 Internet Explorer 7 Internet Explorer 11 /!\ 不支持的版本(无法使用;哎呀,我有浏览器)

然后我得到一个远程浏览器(测试版)选项。我应该使用有效的电子邮件进行注册,但与服务器通信时出错。哦,好吧。

以前支持Firefox,但现在看不到了。可能躲起来了。

我可以在浏览器版本之间并排比较。我还可以与图像进行比较,或者显然是 PSD 文件(不知道效果如何)。 InDesign 会很好,但这可能要求太多了。

由于 Visual Studio Ultimate 位于同一台计算机上,我还部分安装了 Expression 的完整版本,因此我希望有人在评论中确认我的免费安装不会自动升级。

更新:看起来在线服务是discontinued,但仍支持本地浏览器。你也可以download just SuperPreview,不用编辑器垃圾。如果你想要完整的 IDE,最新版本是Microsoft Expression Web 4 (Free Version)。这是official list of supported browsers。 IE6 在 Windows 8.1 上似乎报错,但 IE7 可以。

2014 年 12 月 9 日更新: 微软几乎放弃了这一点。不要指望它能很好地工作。

【讨论】:

上次我查看Expression Web / Super Preview 仅提供各种浏览器中页面的静态快照。虽然这是像素完美的网页设计师想要的,但它不是开发者想要的——我们想要与页面交互、调试 js 和 CSS 以及操作 DOM,而这正是 IE 开发者工具的用武之地。 @saille 我现在没有它,但我很确定它是交互式的。【参考方案4】:

您可以使用 Emulation (Ctrl + 8) 文档模式 (10,9,8,7,5)、浏览器配置文件(桌面、Windows Phone)

【讨论】:

感谢您分享在哪里可以找到它,我被难住了! :)【参考方案5】:

在 IE11 中,我们可以将用户代理更改为 IE10、IE9 甚至是 windows phone。真的很不错

【讨论】:

那只是改变了用户代理字符串;它不会改变浏览器的行为方式。对兼容性测试完全没用。【参考方案6】:

如何在IE11中恢复“浏览器模式”?

返回的简单方法是转到仿真 (ctrl +8)

并更改用户代理字符串。 (见附图)

【讨论】:

那只是改变了用户代理字符串;它不会改变浏览器的行为方式。它对兼容性测试完全没用。此外,您的示例使用 X-UA-Compatible。【参考方案7】:

最简单的方法,尤其是在 MSDN 中,浪费了我的时间,愚蠢的 MS

http://support.microsoft.com/kb/2900662/en-us?sd=rss

    打开“开发者工具”窗格。为此,请按 F12。 打开仿真屏幕。为此,请按 Ctrl+8。 在“模式”下的“文档模式”列表中,单击 9。 在模式下的用户代理字符串列表中,单击 Internet Explorer 9。

【讨论】:

只是一个礼貌的仅供参考,尽量包括决议的细节,而不是简单地提供一个链接。如果链接断开,那么答案对未来的人来说毫无用处。该链接很有帮助,但请保留它作为您在详细答案中包含的信息的链接参考。【参考方案8】:

您可以通过为您正在调试的特定版本的 IE 设置 X-UA-Compatible 元标头来解决此问题。这会将 Browser Mode 更改为您在标题中指定的版本。

例如:

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

为了在开发者工具上更新浏览器模式,您必须关闭 [开发者工具] 并重新打开。这将切换到该特定版本。

从次要版本切换到较大版本可以通过刷新来正常工作,但如果您想从较大版本切换回次要版本,例如从 9 到 7,则需要打开一个新选项卡并再次加载页面。

截图如下:

【讨论】:

以上是关于如何在 IE11 中恢复“浏览器模式”?的主要内容,如果未能解决你的问题,请参考以下文章

再谈IE的浏览器模式和文档模式

IE的浏览器模式和文档模式

IE的浏览器模式文本模式

手机怎么使用ie9以上浏览器

IE9 浏览器模式和条件注释

在 Intranet 中强制使用“Internet Explorer 8”浏览器模式