IE 11 - 开发者工具和检测旧版IE浏览器

5

我现在使用的是IE11,我觉得为了网页开发最好有一些额外的工具。我经常会用下面这些标签来检测旧版糟糕的IE浏览器:

<!--[if lt IE 7]><html class="ie ie6 some-custom-class"><![endif]-->
<!--[if IE 7]><html class="ie ie7 some-custom-class"><![endif]-->
<!--[if IE 8]><html class="ie ie8 some-custom-class"><![endif]-->
<!--[if IE 9]><html class="ie ie9 some-custom-class"><![endif]-->
<!--[if gt IE 9]><html class="ie some-custom-class"><![endif]-->
<!--[if !IE]><!--><html class="some-custom-class"><!--<![endif]-->

我将IE11设置为IE8-9兼容模式,但它忽略了上述标签。如果没有办法打开它们,那么我不明白为什么要制作这些工具-.-' 这有逻辑吗?
无论如何,我是否需要安装win 7才能使用IE 8-9? http://www.browserstack.com <-我更喜欢客户端而不是远程访问。
是否有类似补丁的东西可以使“现代”浏览器的开发工具可用?
或者也许还有另一种方法可以使用真正轻量级的脚本检测旧浏览器。

尝试从“工具”菜单 -> “开发人员工具”启用它,然后您将看到一个名为“ie 11”的选项卡,在那里将其更改为ie 8或ie7,根据您的需要。 - Faizan Khan
我在编写这段代码之前设置了这些选项卡:文档模式用户代理字符串。标签仍然被忽略。 - Macko Tarana
“Browser Stack...我更喜欢客户端而不是远程访问。” 你可以从http://modern.ie/下载每个IE版本的相关VM映像。然后,您可以在本地PC上运行VM。话虽如此,我真的很喜欢Browser Stack;它易于使用和方便,并且省去了自己设置VM的麻烦。 - Spudley
参考:这里应该使用“文档模式”。 “用户代理字符串”不会更改浏览器的模式;它只是更改其向服务器标识自己的方式。 - Spudley
1
最后,如果要检测旧版浏览器,您可能需要考虑使用 Modernizr。这是一个相对较轻的脚本,正如您所请求的那样。它的目标是检测 特性 而不是实际的浏览器,这意味着您可以针对支持您正在使用的功能的浏览器进行定位,而无需真正知道浏览器是什么。这被认为比检测浏览器本身更好的实践。 - Spudley
条件语句在IE 11中被完全移除,它们总是被忽略,因为太多的网站给IE带来了糟糕的CSS,这是打击所有愚蠢的浏览器嗅探的又一种方式。最好始终先进行特性检测。 - Chris Love
2个回答

4
自IE10起,条件语句已被移除。但是,这个版本的IE开发工具仍然能够解释它们。 然而,对于IE11版本来说并非如此。我不知道是否可能重新启用此功能。我猜想不行,至少现在不行。 对我来说也是不合逻辑的。仿真应该支持条件语句。因此,我认为微软迟早会修复这个问题。 对于以前的IE版本,您可以安装Windows 7或使用WM。自行选择。 我确认,没错,您可以使用Modernizr来检测浏览器。

来源:IE 11和IE 10开发者工具支持条件语句
IE支持条件注释


目前我无法在消息中发布超过2个链接。因此,我在这里发布套件源代码: stackoverflow.com上的其他主题 microsoft.com上的问题报告 - Wagner_SOFC

3

我发现最简单易行的方法是通过在HTML中使用这个标签进行操作:

<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"

如果您将IE11渲染模式设置为“8”,并将上述内容设置为content =" IE = 8 ",您将获得一个浏览器版本,可以遵守条件注释规则。我只在测试CSS定位等轻量级方面使用此功能。虽然仍然有些不便,但没有需要半打VM的那么糟糕。
我看到@Lonard在第二个链接中实际上已经提供了这个解决方案,但在答案中没有提到它。不幸的是,“删除依赖项”通常是答案,但当您的客户坚持要求您的页面在IE7中运行,并且IE7不理解现在非常基本的CSS布局时,这不是一个解决方案。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接