js判断各大主流浏览器

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章