您的位置:首页 > Web前端 > JavaScript

如何在客户端判断浏览器的类型(Detecting IE7+ in JavaScript)

2007-06-25 16:20 686 查看


Today I was updating some Javascript code to support the rapidly-approaching Internet Explorer 7. There were a few places in the code where there were IE-specific workarounds, which happily are no longer needed in IE 7
thanks to its improved standards support. Yay position:fixed!

Where the code used to check for if (ie) { ... }, now I wanted it to check for if (ie6OrLower) { ... }. So how to you tell the difference between IE 6 and IE 7+? You could parse the user-agent string, but I’d rather detect changes in the javascript object model. Here’s what I came up with:

if (typeof document.body.style.maxHeight != "undefined") {
// IE 7, mozilla, safari, opera 9
} else {
// IE6, older browsers
}
This distinguishes between browsers based on the fact that IE 7 knows about the maxHeight css property, whereas previous versions of IE didn’t. Does that seem like a sane approach to you?

Update: over at Ajaxian Arjan points out that it’s a bit simpler to check for window.XmlHttpRequest, which is also new in IE 7.

JAVASCRIPT:

if (typeof document.body.style.maxHeight != "undefined") {

// IE 7, mozilla, safari, opera 9

} else {

// IE6, older browsers

}

You can also use the XHR check:

if (window.XMLHttpRequest) {
// IE 7, mozilla, safari, opera 9
} else {
// IE6, older browsers
}

If script is executed width , then document.body is not available yet.

if (window.XMLHttpRequest) {
if(document.epando){
alert("ie7");
//IE7
}else{
//mozilla, safari, opera 9…etc
alert("mozilla");
}
} else {
// IE6, older browsers
alert("ie6");
}


偶测试了一下,发现这最后一种方法区别不了 IE7还是firefox,请高人指点一下!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: