检测较旧的IE版本

Mot*_*tie 14 jquery internet-explorer browser-support

我需要的,如果用户运行的是IE浏览器的旧版本(IE9是罚款)从一个jQuery插件检测,所以我不会有超过HTML控件.

我们不鼓励解析用户代理字符串并使用$.browser.msie.该$.support方法也未涵盖该问题.

所以,我发现这有效,但我不确定它是否是"良好做法".

$('body').append('<!--[if lte IE 8]><script>$("body").addClass("oldie");</script><![endif]-->');
var old_ie = $('body').is('.oldie');
Run Code Online (Sandbox Code Playgroud)

你会使用这种方法还是坚持解析用户代理字符串(我需要弄清楚它是否是IE并得到版本号)?

Šim*_*das 16

你可以运行它

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;
}());
Run Code Online (Sandbox Code Playgroud)

检测IE的版本.

资料来源: http ://ajaxian.com/archives/attack-of-the-ie-conditional-comment

然后

if ( ie < 9 ) {
    // do your stuff, for instance:
    window.location = 'http://getfirefox.com'; // :p
}
Run Code Online (Sandbox Code Playgroud)