JavaScript(JS) 浏览器兼容性(判断使用的浏览器)

了解不同浏览器之间的差异很重要,可以通过预期的方式处理每个浏览器。则判断网页在哪个浏览器中运行非常重要。要获取网页当前运行的浏览器的信息,可以使用内置的navigator对象。

1、navigator 属性

浏览器中可以调用navigator 属性和说明如下表,

属性

说明

appCodeName


此属性是一个字符串,包含浏览器的代码名,

Netscape用于Netscape,

 Microsoft Internet Explorer用于Internet Explorer。

appVersion


此属性是一个字符串,

包含浏览器的版本以及其他有用信息,

如语言和兼容性。

language


此属性包含浏览器使用的语言的字母缩写。

mimTypes[]


此属性是一个包含客户端支持的所有MIME类型的数组。

platform[]


此属性是一个字符串,包含浏览器为之编译的平台。

32位Windows操作系统的“Win32”。

plugins[]


此属性是一个包含已安装在客户端上的所有插件的数组。

userAgent[]


此属性是一个字符串,包含浏览器的代码名和版本。

此值被发送到初始服务器以标识客户端。

2、navigator 方法

浏览器中可以调用navigator 方法和说明如下表,

方法

说明

javaEnabled()


此方法确定客户端是否启用了JavaScript。

如果JavaScript被启用,

这个方法返回true;否则,返回false

plugings.refresh

可以刷新新安装的插件。

3、浏览器判断

JavaScript可以通过navigator.userAgent找出浏览器的名称,然后针对不同浏览器提供相应的HTML页面。

function IEVersion() {
            var userAgent = navigator.userAgent; //取得浏览器的userAgent字符串  
            var isIE = userAgent.indexOf("compatible") > -1 && userAgent.indexOf("MSIE") > -1; //判断是否IE<11浏览器  
            var isEdge = userAgent.indexOf("Edge") > -1 && !isIE; //判断是否IE的Edge浏览器  
            var isIE11 = userAgent.indexOf('Trident') > -1 && userAgent.indexOf("rv:11.0") > -1;
            if(isIE) {
                var reIE = new RegExp("MSIE (\\d+\\.\\d+);");
                reIE.test(userAgent);
                var fIEVersion = parseFloat(RegExp["$1"]);
                if(fIEVersion == 7) {
                    return IE7;
                } else if(fIEVersion == 8) {
                    return IE8;
                } else if(fIEVersion == 9) {
                    return IE9;
                } else if(fIEVersion == 10) {
                    return IE10;
                } else {
                    return IE6;//IE版本<=7
                }   
            } else if(isEdge) {
                return 'edge';//edge
            } else if(isIE11) {
                return IE11; //IE11  
            }else{
                return -1;//不是ie浏览器
            }
        }
function myBrowser() {
    var userAgent = navigator.userAgent; //取得浏览器的userAgent字符串
    var isOpera = userAgent.indexOf("Opera") > -1; //判断是否Opera浏览器
    var ieVersion= IEVersion(); //判断是否IE浏览器
    var isEdge = userAgent.indexOf("Edge") > -1; //判断是否IE的Edge浏览器
    var isFF = userAgent.indexOf("Firefox") > -1; //判断是否Firefox浏览器
    var isSafari = userAgent.indexOf("Safari") > -1
            && userAgent.indexOf("Chrome") == -1; //判断是否Safari浏览器
    var isChrome = userAgent.indexOf("Chrome") > -1
            && userAgent.indexOf("Safari") > -1; //判断Chrome浏览器
 
    if (ieVersion !="-1") {
        return ieVersion;
    }
    if (isOpera) {
        return "Opera";
    }
    if (isEdge) {
        return "Edge";
    }
    if (isFF) {
        return "FF";
    }
    if (isSafari) {
        return "Safari";
    }
    if (isChrome) {
        return "Chrome";
    }
}
console.log(myBrowser());


推荐阅读
cjavapy编程之路首页