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

Evg*_*eny 131 cross-browser ie-developer-tools internet-explorer-11

更新:旧问题仅适用于IE11预览; 浏览器模式已在IE11的最终版本中返回.但有一个问题:它是无用的,因为它不会模仿条件评论.例如,如果您使用它们在旧版IE中启用HTML5支持,您将无法再在IE11中调试您的站点.

        <!--[if lte IE 8]>
            <script src="html5shiv.js"></script>
        <![endif]-->
Run Code Online (Sandbox Code Playgroud)

阅读另一个StackOverflow问题和IE 错误跟踪器问题.微软从未对此作出回应,因此看起来他们故意引入这个漏洞来引导人们购买BrowserStack订阅.有条件的评论模拟在预览版中运行得很好.

原始问题:在Windows 7上安装IE11预览版时,它附带了老式的F12工具,可以更改浏览器模式. 在此输入图像描述

但是,如果您转到"工具"菜单并选择"F12"开发人员工具,它将被新的开发人员工具取代,并且"浏览器模式"不再可用. 在此输入图像描述

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

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

Spu*_*ley 145

[UPDATE]

原始问题,以及下面的答案专门适用于IE11 预览版.

最终发布版本 IE11的实际上提供从开发工具Emulation标签切换浏览器模式的能力:

屏幕截图显示了仿真选项卡中的浏览器模式选择

话虽如此,我在这里(以及其他地方)给出的建议,以避免使用兼容模式进行测试仍然有效:如果你想测试你的网站是否与旧的IE版本兼容,你应该总是在真正的副本中进行测试那些IE版本.

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


[原始答案]

IE开发者故意不赞成切换浏览器模式的能力.

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

IE开发者已经认识到了这一点,并故意让开发者更难以犯这个错误.

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

各种兼容模式仍然可以在IE11中使用,但只有在站点明确声明它想要在compat模式下运行时才能访问.您可以通过X-UA-Compatible在页面上添加标题来完成此操作.

文档模式下拉框仍然可用,但只提供"Edge"选项(即当前IE版本可用的最佳模式,IE11中的IE11模式)或页面运行模式在.

因此,如果您转到以compat模式加载的页面,您可以选择在加载页面的特定compat模式或IE11"Edge"模式之间切换.

如果你进入一个以IE11模式加载的页面,那么你只会被提供"边缘"模式,而不是其他任何东西.

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

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

希望能为您解释一些事情.

  • 没有... BrowserStack不是免费的,虚拟机是一个痛苦的屁股使用(不要告诉我否则,我有他们所有设置,并且必须每3个月重置一次......等等... ).我对Modern.ie和微软的产品都了如指掌.微软正在取消一种简单,免费的方法,该方法适用于大多数开发人员需要测试的大约90%的东西,并用cludgy VM或付费服务取而代之.颜色我没有留下深刻印象.我是微软的支持者之一,主要在.NET商店工作.我认为这是DUMB. (9认同)
  • 虽然使用MS提供的免费虚拟机进行测试绝对更好,但它也更耗时.我必须启动虚拟机,我必须在几个不同的虚拟机之间切换,每次激活计时器用完时我都必须重新安装小漏洞,因为它们没有提供任何激活密钥.不过,我想我们应该感谢他们实际上在设置这些虚拟机时遇到了麻烦.您可以使用旧的F12 compat模式捕获大量问题,然后使用VM验证一次.但我离题了. (8认同)
  • 我理解为什么他们认为弃用兼容模式下拉列表是一个好主意,但我认为对于任何花时间确保他们的网站在IE中运行的开发人员来说,这也是一个打击.正如其他人所提到的,使用兼容性检查程序检查明显的错误效果很好.此外,你还拥有一套优秀的开发工具(与IE7中的工具相比甚至是8的垃圾相比).我也会尝试检查虚拟机,任何好的开发工具都可以.但这种变化只是意味着更少的开发人员关心让旧的IE工作. (7认同)
  • 顺便说一句,我不应该在VM中加载完整的操作系统来测试一个愚蠢的浏览器.如果微软真的希望开发人员确保他们的东西能够在旧版本的IE中运行,那么他们应该提供更好的免费选择.否则,看起来他们似乎鼓励开发人员忽略旧版本并且只担心解决新版本中的错误. (4认同)
  • 我认为这是:"我们搞砸了,我们给了你错误的工具来处理我们的错误,所以现在我们要指出给你钱的工具." (4认同)

Evg*_*eny 19

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

感谢令人敬畏的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
Run Code Online (Sandbox Code Playgroud)

  • 我不知道是否有人设法找到一种方法来破解IE11以获取旧的开发工具,或者郁闷他们愿意牺牲IE11开发工具中所有令人惊奇的新东西只是为了能够切换浏览器模式.:-( (8认同)
  • 这与微软生产非W3C标准兼容浏览器的遗产有关.IE10或11没有任何问题 - 它们是很好的现代浏览器.这一切都是9和8,直到最近7和6.由于不可能将它们与现代IE一起安装在Windows 8中,因此需要良好的仿真工具. (7认同)
  • 我认为这根本没有意义.我测试IE时的工作流程是首先使用F12 compat模式并充实我发现的任何问题,然后我遇到了启动VM的麻烦.这比在(不同的)VM中进行所有IE测试要高效得多. (5认同)
  • 为了让这个reg hack为我工作,我还必须更新ITBar7Layout64值.它工作,然而关闭和打开F12工具崩溃IE :)好事我做了一个reg键的备份. (2认同)

Raj*_*nth 17

您可以使用仿真(Ctrl + 8) 文档模式(10,9,8,7,5),浏览器配置文件(桌面,Windows Phone)来获取此功能

在此输入图像描述


小智 5

最简单的方法,特别是如果在MSDN,浪费我的时间,愚蠢的MS

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

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

  • 只是一个有礼貌的FYI,尝试包括决议的细节,而不是简单地提供一个链接.如果链接出现故障,则答案对于将来的人来说是无用的.该链接很有用,但请将其作为您*详细*答案中包含的信息的链接参考. (3认同)