js获取浏览器版本

简介: js获取浏览器版本

获取浏览器版本

   <script>
        function getBrowser() {
            var UserAgent = navigator.userAgent.toLowerCase();
            var browserInfo = {};
            var browserArray = {
                IE: window.ActiveXObject || "ActiveXObject" in window,
                // IE       
                Chrome: UserAgent.indexOf('chrome') > -1 && UserAgent.indexOf('safari') > -1,
                // Chrome浏览器       
                Firefox: UserAgent.indexOf('firefox') > -1,
                // 火狐浏览器       
                Opera: UserAgent.indexOf('opera') > -1,
                // Opera浏览器        
                Safari: UserAgent.indexOf('safari') > -1 && UserAgent.indexOf('chrome') == -1,
                // safari浏览器        
                Edge: UserAgent.indexOf('edge') > -1,
                // Edge浏览器        
                QQBrowser: /qqbrowser/.test(UserAgent),
                // qq浏览器        
                WeixinBrowser: /MicroMessenger/i.test(UserAgent)
                // 微信浏览器  
            };
            // console.log(browserArray)  
            for (var i in browserArray) {
                if (browserArray[i]) {
                    var versions = '';
                    if (i == 'IE') {
                        versions = UserAgent.match(/(msie\s|trident.*rv:)([\w.]+)/)[2];
                    } else if (i == 'Chrome') {
                        for (var mt in navigator.mimeTypes) {
                            //检测是否是360浏览器(测试只有pc端的360才起作用)      
                            if (navigator.mimeTypes[mt]['type'] == 'application/360softmgrplugin') {
                                i = '360';
                            }
                        }
                        versions = UserAgent.match(/chrome\/([\d.]+)/)[1];
                    } else if (i == 'Firefox') {
                        versions = UserAgent.match(/firefox\/([\d.]+)/)[1];
                    } else if (i == 'Opera') {
                        versions = UserAgent.match(/opera\/([\d.]+)/)[1];
                    } else if (i == 'Safari') {
                        versions = UserAgent.match(/version\/([\d.]+)/)[1];
                    } else if (i == 'Edge') {
                        versions = UserAgent.match(/edge\/([\d.]+)/)[1];
                    } else if (i == 'QQBrowser') {
                        versions = UserAgent.match(/qqbrowser\/([\d.]+)/)[1];
                    }
                    browserInfo.type = i; browserInfo.versions = parseInt(versions);
                }
            } return browserInfo;
        }
    </script>


相关文章
|
5月前
|
编解码 JavaScript 前端开发
【Java进阶】详解JavaScript的BOM(浏览器对象模型)
总的来说,BOM提供了一种方式来与浏览器进行交互。通过BOM,你可以操作窗口、获取URL、操作历史、访问HTML文档、获取浏览器信息和屏幕信息等。虽然BOM并没有正式的标准,但大多数现代浏览器都实现了相似的功能,因此,你可以放心地在你的JavaScript代码中使用BOM。
139 23
|
10月前
|
运维 Prometheus 监控
如何在测试环境中保持操作系统、浏览器版本和服务器配置的稳定性和一致性?
如何在测试环境中保持操作系统、浏览器版本和服务器配置的稳定性和一致性?
|
8月前
|
Web App开发 前端开发 JavaScript
折腾之王:JavaScript之父Brave浏览器与BAT的诞生
2015年,JavaScript之父Brendan Eich再次创业,推出Brave浏览器和加密货币Basic Attention Token(BAT),旨在颠覆传统广告行业。Brave屏蔽广告、保护隐私,加载速度快;BAT则通过奖励机制让用户、内容创作者和广告主三方受益。尽管面临用户习惯和巨头竞争的挑战,Brave已拥有超4000万月活跃用户,成为全球增长最快的隐私浏览器,引领Web3生态发展。
308 22
折腾之王:JavaScript之父Brave浏览器与BAT的诞生
|
10月前
|
JavaScript 前端开发 数据处理
模板字符串和普通字符串在浏览器和 Node.js 中的性能表现是否一致?
综上所述,模板字符串和普通字符串在浏览器和 Node.js 中的性能表现既有相似之处,也有不同之处。在实际应用中,需要根据具体的场景和性能需求来选择使用哪种字符串处理方式,以达到最佳的性能和开发效率。
218 63
|
10月前
|
移动开发 JavaScript 前端开发
一些处理浏览器兼容性问题的JavaScript库
这些库在处理浏览器兼容性问题方面都有着各自的特点和优势,可以根据具体的需求和项目情况选择合适的库来使用,从而提高代码的兼容性和稳定性,为用户提供更好的体验。同时,随着浏览器技术的不断发展,还需要持续关注和学习新的兼容性解决方案。
333 58
|
10月前
|
算法 开发者
Moment.js库是如何处理不同浏览器的时间戳格式差异的?
总的来说,Moment.js 通过一系列的技术手段和策略,有效地处理了不同浏览器的时间戳格式差异,为开发者提供了一个稳定、可靠且易于使用的时间处理工具。
269 57
|
10月前
|
JSON 移动开发 JavaScript
在浏览器执行js脚本的两种方式
【10月更文挑战第20天】本文介绍了在浏览器中执行HTTP请求的两种方式:`fetch`和`XMLHttpRequest`。`fetch`支持GET和POST请求,返回Promise对象,可以方便地处理异步操作。`XMLHttpRequest`则通过回调函数处理请求结果,适用于需要兼容旧浏览器的场景。文中还提供了具体的代码示例。
156 5
在浏览器执行js脚本的两种方式
|
10月前
|
Web App开发 JavaScript 前端开发
使用 Chrome 浏览器的内存分析工具来检测 JavaScript 中的内存泄漏
【10月更文挑战第25天】利用 Chrome 浏览器的内存分析工具,可以较为准确地检测 JavaScript 中的内存泄漏问题,并帮助我们找出潜在的泄漏点,以便采取相应的解决措施。
1158 9
|
10月前
|
机器学习/深度学习 自然语言处理 前端开发
前端神经网络入门:Brain.js - 详细介绍和对比不同的实现 - CNN、RNN、DNN、FFNN -无需准备环境打开浏览器即可测试运行-支持WebGPU加速
本文介绍了如何使用 JavaScript 神经网络库 **Brain.js** 实现不同类型的神经网络,包括前馈神经网络(FFNN)、深度神经网络(DNN)和循环神经网络(RNN)。通过简单的示例和代码,帮助前端开发者快速入门并理解神经网络的基本概念。文章还对比了各类神经网络的特点和适用场景,并简要介绍了卷积神经网络(CNN)的替代方案。
1307 1
|
11月前
|
JavaScript 测试技术 API
跟随通义灵码一步步升级vue2(js)项目到vue3版本
Vue 3 相较于 Vue 2 在性能、特性和开发体验上都有显著提升。本文介绍了如何利用通义灵码逐步将 Vue 2 项目升级到 Vue 3,包括备份项目、了解新特性、选择升级方式、升级依赖、迁移组件和全局 API、调整测试代码等步骤,并提供了注意事项和常见问题的解决方案。
837 4