首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用jQuery识别IE9/IE10

使用jQuery识别IE9/IE10
EN

Stack Overflow用户
提问于 2013-03-27 19:21:18
回答 5查看 32.3K关注 0票数 4

我有一个jQuery代码,它可以很好地工作在Chrome/Mozilla上,但不能用于IE。

代码语言:javascript
复制
if ($("html").hasClass("ie")) {
    $(function(){
        $('.green-column, .red-column, .grey-column').click(function() { 
             alert ($(this).attr("data-type"));           
        });
    });
}
else {
 $(function(){
        $('.green-column, .red-column, .grey-column').click(function() { 
         $("<div title='Selected Task is:'>" + $(this).attr("data-type") + "</div>").dialog({ 
             modal: true,
             resizable: false,
             buttons: [
                {
                   text: "OK", 
                   click: function() { $( this ).dialog( "close" ); }
                }
             ]
         });
    });
});
}
</script> 
<!--[if IE 7]>    <html lang="en-us" class="ie"> <![endif]-->
<!--[if IE 8]>    <html lang="en-us" class="ie"> <![endif]-->
<!--[if gt IE 8]><!--> <html lang="en-us" class="ie"> <!--<![endif]-->

因此,我计划为IE9/IE10使用一个警告,但我无法区分这两种浏览器。谁能告诉我如何在jQuery/HTML中识别IE9/IE10?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2013-09-18 20:03:56

可以在不使用库或条件编译的情况下实现:

代码语言:javascript
复制
if (document.addEventListener) {
    alert("IE9 or greater");
}

if (window.requestAnimationFrame) {
    alert("IE10 or greater");
}
票数 14
EN

Stack Overflow用户

发布于 2013-03-27 19:23:20

就像这样做

代码语言:javascript
复制
if ($.browser.msie  && parseInt($.browser.version, 10) > 8) {
  alert('IE9 or IE10'); 
} else {
  alert('Non IE9 or IE10');
}

这应该适用于1.9以下的jQuery版本。如果您使用1.9+,请阅读此thread或考虑使用modernizr

票数 7
EN

Stack Overflow用户

发布于 2013-03-27 19:28:35

检测当前活动的IE版本(可能是模拟的)的唯一可靠方法是结合使用conditional compilationdocument.documentMode检查。

条件编译是可选的,但它允许您永远不为非IE浏览器运行IE检测脚本。

例如:

代码语言:javascript
复制
if (/*@cc_on !@*/false && (
       document.documentMode === 9 || document.documentMode === 10)
   ) {
    // IE 9 or 10 (not 8 or 11!)
    document.documentElement.className += ' ie9 ie10';
}

前面的代码对于微型程序来说是不安全的。如果你打算缩小你的代码,把条件编译的东西放在一个字符串中,然后eval它:

代码语言:javascript
复制
if (eval('/*@cc_on !@*/false') && ( ... )) { ... }
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15657614

复制
相关文章

相似问题

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