欢迎访问宙启技术站
智能推送

JavaScript如何判断浏览器版本

发布时间:2023-05-18 02:50:08

JavaScript可以通过浏览器窗口对象的navigator属性来获取浏览器和操作系统的相关信息,从而判断当前浏览器的版本。

一、获取浏览器信息

1. navigator.appCodeName:返回浏览器的名称,通常都是Mozilla。

2. navigator.appName: 返回浏览器的名称,在大部分浏览器中不同于navigator.appCodeName。

3. navigator.appVersion:返回浏览器和操作系统的版本信息。

4. navigator.userAgent:返回用户代理头的字符串表示,包含了浏览器和操作系统的信息。

二、判断浏览器版本

1.利用userAgent方式

navigator.userAgent 可以获取用户代理头的字符串表示,包含了浏览器和操作系统的信息,我们可以通过匹配字符串来判断浏览器版本。下面是判断Chrome浏览器版本的代码示例:

function getBrVersion() {

    var userAgent = navigator.userAgent; //获取userAgent信息 

    var browserArr = { //创建浏览器数组 

        msie: false, //是否为IE 

        firefox: false, //是否为火狐 

        chrome: false, //是否为Chrome 

        opera: false, //是否为Opera 

        safari: false, //是否为Safari 

        edge: false, //是否为Edge 

        netscape: false //是否为Netscape 

    };

    if (userAgent.indexOf("MSIE") != -1 || userAgent.indexOf("Trident") != -1) { //IE浏览器

        browserArr.msie = true;

        return "IE浏览器";

    }

    if (userAgent.indexOf("Firefox") != -1) { //Firefox浏览器

        browserArr.firefox = true;

        return "Firefox浏览器";

    }

    if (userAgent.indexOf("Chrome") != -1) { //Chrome浏览器

        browserArr.chrome = true;

        return "Chrome浏览器";

    }

    if (userAgent.indexOf("Opera") != -1) { //Opera浏览器

        browserArr.opera = true;

        return "Opera浏览器";

    }

    if (userAgent.indexOf("Safari") != -1) { //Safari浏览器

        browserArr.safari = true;

        return "Safari浏览器";

    }

    if (userAgent.indexOf("Edge") != -1) { //Edge浏览器

        browserArr.edge = true;

        return "Edge浏览器";

    }

    if (userAgent.indexOf("Netscape") != -1) { //Netscape浏览器

        browserArr.netscape = true;

        return "Netscape浏览器";

    }

}

注意:userAgent 只能获取当前窗口对象的信息,因此不能保证返回的浏览器版本是准确的。

2. 利用document.mode方式

IE浏览器提供了一个document.mode属性,可以返回当前页面的渲染模式。在IE8及以下版本中,该属性值为 undefined 或 BackCompat(混杂模式),在IE9及以上版本中,该属性值为 CSS1Compat(标准模式)。

示例代码:

function judgeIEVersion() {

    var mode = document.mode;

    if (mode == 'CSS1Compat') {

        return 'IE浏览器9+';

    } else {

        return 'IE浏览器8-';

    }

}

三、判断操作系统版本

1. 利用userAgent方式

和判断浏览器版本类似,可以通过获取用户代理头的字符串表示,来判断当前操作系统的类型和版本。下面是判断操作系统版本的代码示例:

function getOsVersion() {

    var userAgent = navigator.userAgent.toLowerCase(); 

    var osArr = { //创建操作系统数组 

        windows: false, 

        mac: false, 

        unix: false, 

        linux: false, 

        android: false,

        ios: false

    };

    if (userAgent.indexOf('windows') != -1) { //判断是否为Windows

        osArr.windows = true;

        return "Windows";

    } else if (userAgent.indexOf('mac') != -1) { //判断是否为Mac

        osArr.mac = true;

        return "Mac";

    } else if (userAgent.indexOf('android') != -1) { //判断是否为Android

        osArr.android = true;

        return "Android";

    } else if (userAgent.indexOf('iphone') != -1 || userAgent.indexOf('ipad') != -1) { //判断是否为iOS

        osArr.ios = true;

        return "iOS";

    } else if (userAgent.indexOf('linux') != -1) { //判断是否为Linux

        osArr.linux = true;

        return "Linux";

    } else if (userAgent.indexOf('unix') != -1) { //判断是否为Unix

        osArr.unix = true;

        return "Unix";

    }

}

2.利用navigator.platform方式

navigator.platform 可以获取操作系统类型,但是无法获取操作系统版本。下面是获取操作系统类型的代码示例:

function judgeOs() {

    var os = navigator.platform;

    if (os.indexOf('Win') != -1) {

        return 'Windows操作系统';

    } else if (os.indexOf('Mac') != -1) {

        return 'Mac操作系统';

    } else if (os.indexOf('X11') != -1) {

        return 'Unix操作系统';

    } else if (os.indexOf('Linux') != -1) {

        return 'Linux操作系统';

    }

}

以上就是通过JavaScript来判断浏览器和操作系统版本的方法,通过获取用户代理头的字符串表示和判断 document.mode 属性,可以比较准确地判断浏览器和操作系统版本。但是,需要注意的是,这种方法并不是完全可靠的,因为还存在浏览器的用户代理头被伪装和篡改的情况。