如何用javascript检测IE6?

时间:2011-05-09 18:22:18

标签: javascript internet-explorer

如何使用javascript检测Internet Explorer及更低版本?我知道导航器对象,但它发送给他的信息是什么?

3 个答案:

答案 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);