测试代码如下,html直接可以使用:
<html>
<head>
<script type="text/javascript">
/***
* 获取当前浏览器类型
*/
function myBrowser() {
var userAgent = navigator.userAgent; //取得浏览器的userAgent字符串
var isOpera = userAgent.indexOf("Opera") > -1;
if (isOpera) { //判断是否Opera浏览器
return "Opera"
};
if (userAgent.indexOf("Firefox") > -1) { //判断是否Firefox浏览器
return "FF";
};
if (userAgent.indexOf("Chrome") > -1) {
return "Chrome";
};
if (userAgent.indexOf("Safari") > -1) { //判断是否Safari浏览器
return "Safari";
};
/*if (userAgent.indexOf("compatible") > -1 && userAgent.indexOf("MSIE") > -1 && !isOpera) { //判断是否IE浏览器
return "IE";
};*/
if(!!window.ActiveXObject || "ActiveXObject" in window){
return "ie";
}
}
function get(){
alert(myBrowser());
}
</script>
</head>
<body>
<div id="myBrower" onclick="get()" value="fxb">点我,看我是什么浏览器</div>
</body>
</html>
说明1:
早前的 IE浏览器的 判断一般是这样的
var userAgent = navigator.userAgent; //取得浏览器的userAgent字符串
if (userAgent.indexOf("compatible") > -1 && userAgent.indexOf("MSIE") > -1 && !isOpera) { //判断是否IE浏览器
return "IE";
};
说明2:
之后的navigator.userAgent 返回的字符串改了,所有我们之前的方式判断不出来了
网上简介了一个大神的判断方法,简单好用
if(!!window.ActiveXObject || "ActiveXObject" in window){
return "ie";
}
解释:
1).IE早些版本时,IE10及以下,window.ActiveXObject 返回一个对象,!window.ActiveXObject则变为false,!!window.ActiveXObject则为true,因为是或||符号后续无需再判断,返回true。
2).IE11中,window.ActiveXObject返回undefine,!window.ActiveXObject则变成了true,!!window.ActiveXObject则变成了false,进入 "window.ActiveXObject" in window判断,该判断条件在IE11下返回true。
3).其他非IE浏览器,如chrome,firefox,window.ActiveXObject都是undefine,!!window.ActiveXObject都是返回的false,而 "window.ActiveXObject" in window也是返回false,因此上述判断函数在非IE浏览器中返回的都是false
(越写越觉得,不为别的,就为自己,成长是痛苦的,但也是快乐的)
原文链接:https://blog.csdn.net/whupanyinghua/article/details/38026027