8

我将如何检查用户浏览器是否为 IE?我这里有这段代码,但它不起作用。

if($.browser.msie && $.browser.version <= 9)
{
    alert('You Are Using An Outdated Browser! Switch To Chrome Or FireFox.');   
}
4

5 回答 5

17

试试James Padolsey 的这个解决方案:

// ----------------------------------------------------------
// If you're not in IE (or IE version is less than 5) then:
//     ie === undefined
// If you're in IE (>5) then you can determine which version:
//     ie === 7; // IE7
// Thus, to detect IE:
//     if (ie) {}
// And to detect the version:
//     ie === 6 // IE6
//     ie> 7 // IE8, IE9 ...
//     ie <9 // Anything less than IE9
// ----------------------------------------------------------
var ie = (function(){
    var undef, v = 3, div = document.createElement('div');

    while (
        div.innerHTML = '<!--[if gt IE '+(++v)+']><i></i><![endif]-->',
        div.getElementsByTagName('i')[0]
    );

    return v> 4 ? v : undef;
}());

评论中还有其他有趣的解决方案。

于 2013-02-24T21:03:31.350 回答
11

browser在 1.9 中被删除。:

描述:包含用户代理的标志,从 navigator.userAgent 读取。我们建议不要使用此属性;请尝试改用特征检测(参见 jQuery.support)。jQuery.browser 可能会在 jQuery 的未来版本中移动到插件中。

于 2013-02-24T21:02:12.537 回答
6

测试功能,而不是浏览器。如果您使用并需要 FormData 就像您在评论中所说的那样,那么将您的支票更改为:

if ( !("FormData" in window) ) {
   // Tell the user to use a better browser, or whatever
}
于 2013-02-24T21:15:19.203 回答
4

MS推荐的方式怎么样:http: //msdn.microsoft.com/en-us/library/ms537509 (v=vs.85).aspx

(当然 UserAgent 可以被欺骗......但是,如果有人在欺骗他们的 UserAgent,您真的关心他们在您的网站上看到的内容吗?)

 function getInternetExplorerVersion()
 // Returns the version of Internet Explorer or a -1
 // (indicating the use of another browser).
 {
    var rv = -1; // Return value assumes failure.

    if (navigator.appName == 'Microsoft Internet Explorer')
    {
        var ua = navigator.userAgent;
        var re  = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");

        if (re.exec(ua) != null) rv = parseFloat( RegExp.$1 );
    }
    return rv;
}
于 2013-12-05T22:29:10.080 回答
0

只是一个提醒(即使没有直接回答问题);与浏览器检测相比,用户特征检测总是更好。

这就是 Modernizr 存在的原因;

为什么要使用Modernizr

利用很酷的新 Web 技术非常有趣,除非您必须支持落后的浏览器。Modernizr 使您可以轻松编写条件 JavaScript 和 CSS 来处理每种情况,无论浏览器是否支持某个功能。它非常适合轻松进行渐进增强。

所以你会像这样使用它;

Modernizr.canvas ? showGraph() : showTable();

于 2015-01-10T22:50:00.830 回答