开发手册 欢迎您!
软件开发者资料库

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());