识别IE 11和其他浏览器

时间:2015-12-23 12:39:54

标签: javascript html internet-explorer

我知道下面的代码适用于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的图像。

对于此要求,我正在尝试条件评论

3 个答案:

答案 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文章,浏览器检测有几个缺点:

  
      
  1. 发布新浏览器或更新现有浏览器时   您必须将新浏览器纳入浏览器检测代码中。   更新的浏览器可能支持非标准和功能   在设计浏览器检测代码时受支持。
  2.   
  3. 有关功能支持的结论可能不正确或不恰当。
  4.   
  5. 随着新设备的推出,它们经常包含新版本   浏览器;因此,必须审查浏览器检测代码   可能已修改为支持新浏览器。在某些情况下   创建自定义实现变得更加复杂   每个浏览器。
  6.   
  7. 浏览器检测技术可能不准确   识别给定的浏览器。例如,许多浏览器支持   能够修改用户代理字符串。
  8.   

modernizer等框架就是为此而构建的。