我知道下面的代码适用于IE 8及其较低版本。
<!--[if lte IE 8]>
Display an image file
<![endif]-->
是否有类似的语法来识别IE 11和其他浏览器,如Firefox,chrome,..
以下是我的原型。
<!--[if IE 11 & other_browsers]>
Display Chart plugin here
<![endif]-->
我需要这个才能在我的网页上显示图表。 IE 11和其他浏览器(Firefox,chrome,..)支持它。但IE 8并不支持。所以我打算从IE 11和其他浏览器中显示这个图表。将显示较低版本IE的图像。
对于此要求,我正在尝试条件评论。
答案 0 :(得分:3)
不,没有。
Microsoft deliberately removed support for conditional comments,没有其他浏览器支持它们。
现代浏览器在持续实施标准方面要好得多。区分它们,特别是通过名称,很少有用。
答案 1 :(得分:1)
您可以通过以下代码获得ie版本 -
document.documentMode
所以你可以像
那样实现它if(document.documentMode==11){
//do something
}
和其他浏览器提供document.documentMode = undefined
所以你可以按照以下条件制作这个条件
if(document.documentMode==11 &&ocument.documentMode==undefined){
//do something
}
答案 2 :(得分:1)
有StackOverflow post回答您的问题:
使用!(window.ActiveXObject)&amp;&amp; “ActiveXObject”在窗口中进行检测 IE11明确。
编辑:您可以按如下方式使用上述测试:
var isMSIE11 = !(window.ActiveXObject) && "ActiveXObject"
if(isMSIE11) {
//use JS or JQuery to add chart
$('#mydiv').....
}
它仅适用于IE 11.但是,根据您的使用情况,您可能希望进行功能检测而不是浏览器检测。根据这篇MSDN文章,浏览器检测有几个缺点:
- 发布新浏览器或更新现有浏览器时 您必须将新浏览器纳入浏览器检测代码中。 更新的浏览器可能支持非标准和功能 在设计浏览器检测代码时受支持。
- 有关功能支持的结论可能不正确或不恰当。
- 随着新设备的推出,它们经常包含新版本 浏览器;因此,必须审查浏览器检测代码 可能已修改为支持新浏览器。在某些情况下 创建自定义实现变得更加复杂 每个浏览器。
- 浏览器检测技术可能不准确 识别给定的浏览器。例如,许多浏览器支持 能够修改用户代理字符串。
醇>
modernizer等框架就是为此而构建的。