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

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