在 javascript 中有一种方法可以通过使用条件注释来检测 ie。这不是我的工作,我只会从Github发布 James Padolsey 的片段:
// ----------------------------------------------------------
// A short snippet for detecting versions of IE in JavaScript
// without resorting to user-agent sniffing
// ----------------------------------------------------------
// 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
// ----------------------------------------------------------
// UPDATE: Now using Live NodeList idea from @jdalton
var ie = (function(){
var undef,
v = 3,
div = document.createElement('div'),
all = div.getElementsByTagName('i');
while (
div.innerHTML = '<!--[if gt IE ' + (++v) + ']><i></i><![endif]-->',
all[0]
);
return v > 4 ? v : undef;
}());
您可以采取的另一种方法是直接在您的 HTML 文件上使用条件注释,而无需直接在 JS 中检测任何内容(我认为这更可取):
<!--[if lt IE 7 ]> <html class="msie ie6"> <![endif]-->
<!--[if IE 7 ]> <html class="msie ie7"> <![endif]-->
<!--[if IE 8 ]> <html class="msie ie8"> <![endif]-->
<!--[if IE 9 ]> <html class="msie ie9"> <![endif]-->
<!--[if (gt IE 9)|!(IE)]><!--> <html class=""> <!--<![endif]-->
用此代码段替换文件中的 HTML 标记。IE 将呈现与其版本相对应的标签。msie
然后您可以在 html-tag 上查找该类的存在。
请注意,这两种解决方案都不适用于 IE10,因为此版本不再支持条件注释。