JS判断浏览器类型与版本的实现代码



function getBrowserInfo() {
    var userAgent = navigator.userAgent; // 获取用户代理字符串
    var browserInfo = {
        name: '', // 浏览器名称
        version: '' // 浏览器版本
    };

    // 判断是否为IE浏览器
    if (/MSIE|Trident/.test(userAgent)) {
        var temp = userAgent.split(';');
        for (var i = 0; i < temp.length; i++) {
            if (/rv:(\d+(\.\d+)?)/.test(temp[i])) {
                browserInfo.name = 'IE';
                browserInfo.version = RegExp.$1;
                break;
            }
        }
    }

    // 判断是否为Edge浏览器
    else if (/Edge\/(\d+(\.\d+)?)/.test(userAgent)) {
        browserInfo.name = 'Edge';
        browserInfo.version = RegExp.$1;
    }

    // 判断是否为Firefox浏览器
    else if (/Firefox\/(\d+(\.\d+)?)/.test(userAgent)) {
        browserInfo.name = 'Firefox';
        browserInfo.version = RegExp.$1;
    }

    // 判断是否为Chrome浏览器
    else if (/Chrome\/(\d+(\.\d+)?)/.test(userAgent)) {
        browserInfo.name = 'Chrome';
        browserInfo.version = RegExp.$1;
    }

    // 判断是否为Safari浏览器
    else if (/Safari\/(\d+(\.\d+)?)/.test(userAgent) && !/Chrome/.test(userAgent)) {
        browserInfo.name = 'Safari';
        browserInfo.version = RegExp.$1;
    }

    // 判断是否为Opera浏览器
    else if (/OPR\/(\d+(\.\d+)?)/.test(userAgent)) {
        browserInfo.name = 'Opera';
        browserInfo.version = RegExp.$1;
    }

    // 返回浏览器信息
    return browserInfo;
}

// 使用示例
console.log(getBrowserInfo());

这段代码通过检测用户代理字符串(`navigator.userAgent`)来判断浏览器的类型和版本。它支持IE、Edge、Firefox、Chrome、Safari和Opera等主流浏览器。需要注意的是,随着浏览器的发展和更新,`userAgent`字符串的格式可能会有所变化,因此这段代码可能需要根据实际情况进行调整。