首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >标识IE11和其他浏览器

标识IE11和其他浏览器
EN

Stack Overflow用户
提问于 2015-12-23 12:39:53
回答 3查看 735关注 0票数 0

我知道下面的代码将适用于IE8及其较低版本。

代码语言:javascript
运行
复制
<!--[if lte IE 8]>
Display an image file
<![endif]-->

是否有类似的语法来识别IE 11和其他浏览器,如Firefox,chrome,..。

下面是我的原型。

代码语言:javascript
运行
复制
<!--[if IE 11 & other_browsers]>
 Display Chart plugin here
<![endif]-->

我需要这个在我的网页上显示一个图表。IE 11和其他浏览器(Firefox,chrome,..)支持它。但IE8并不支持。所以我计划在IE11和其他浏览器上显示这张图表。较低版本的IE将显示一个图像。

对于这一要求,我正在尝试条件注释

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-12-23 12:51:01

你可以通过下面的代码获得ie版本-

document.documentMode

这样你就可以像

代码语言:javascript
运行
复制
if (document.documentMode==11) {
    // do something
}

而对于其他浏览器,则提供document.documentMode==undefined

因此,您可以按以下方式创建此条件:

代码语言:javascript
运行
复制
if (document.documentMode==11 || document.documentMode==undefined) {
    // do something
}
票数 1
EN

Stack Overflow用户

发布于 2015-12-23 12:42:32

不,没有。

微软的故意删除对条件注释的支持,没有其他浏览器支持他们。

现代浏览器在始终如一地实现标准方面要好得多。区分它们,特别是用名字来区分它们,很少有用。

票数 3
EN

Stack Overflow用户

发布于 2015-12-23 13:07:04

有一个StackOverflow邮政回答你的问题:

在窗口中使用!(window.ActiveXObject) && "ActiveXObject“显式地检测IE11。

编辑:您可以按以下方式使用上述测试:

代码语言:javascript
运行
复制
var isMSIE11 = !(window.ActiveXObject) && "ActiveXObject"
if(isMSIE11) {
//use JS or JQuery to add chart
$('#mydiv').....
}

它只适用于IE11。但是,根据您的用例,您可能需要进行特征检测而不是浏览器检测。根据这篇MSDN文章,浏览器检测有几个缺点:

  1. 发布新浏览器或更新现有浏览器时,必须将新浏览器纳入浏览器检测代码。更新的浏览器可能支持在设计浏览器检测代码时不支持的标准和功能。
  2. 关于特征支持的结论可能是不正确或不合适的。
  3. 当新设备可用时,它们通常包括新版本的浏览器;因此,必须检查浏览器检测代码,并可能对其进行修改,以支持新的浏览器。在某些情况下,为每个浏览器创建自定义实现变得更加复杂。
  4. 浏览器检测技术可能无法准确识别给定的浏览器。例如,许多浏览器支持修改用户代理字符串的能力.

现代化者这样的框架就是为此而构建的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34435931

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档