如何使用javascript检测Internet Explorer及更低版本?我知道导航器对象,但它发送给他的信息是什么?
答案 0 :(得分:6)
我推荐使用条件注释来加载IE x的目标IE或JS,因为 @Jason McCreary 建议。但是,如果你深入研究JS插件的代码或需要它来为JS,这是一个非常肯定的完成它的方法:
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;
}
如果你是一个极简主义者,有点反叛者;我认为这种方法确实有效:
if (typeof document.body.style.maxHeight != "undefined") {
// IE 7, moz, saf, opera 9
} else{
// IE6, older browsers
}
答案 1 :(得分:5)
如果您有权访问该代码,我建议conditional comments。这是100%而不是JavaScript。
<!--[if IE 6]>
<script type="text/javascript">
var IE6 = true;
</script>
<![endif]-->
如果没有,传统的 JavaScript方法包括分析navigator
或其他对象检测以嗅出浏览器。
答案 2 :(得分:2)
正如Jason McCreary所建议的那样,条件评论很容易成为最好的方法。可以使用带有JavaScript的条件注释,如下所示:
var div = document.createElement("div");
div.innerHTML = "<!--[if lte IE 6]><i></i><![endif]-->";
var isIe6orLower = !!div.getElementsByTagName("i").length;
alert("Is IE 6 or lower: " + isIe6orLower);