js判断各大主流浏览器

1 篇文章 0 订阅
1 篇文章 0 订阅

测试代码如下,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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值