javascript检测浏览器是否需要升级版本和提示

以vue3+elementPlus为例,可能涉及低版本浏览器的检测和提示

1.获取浏览器版本Func

        function getBrowserVersion(browserType, UserAgent) {
            let versions = '';

            switch (browserType) {
                case 'IE':
                    versions = UserAgent.match(/(msie\s|trident.*rv:)([\w.]+)/)[2];
                    break;
                case 'Chrome':
                    for (let mt in navigator.mimeTypes) {
                        //360 pc      
                        if (navigator.mimeTypes[mt]['type'] == 'application/360softmgrplugin') {
                            browserType = '360';
                        }
                    }
                    versions = UserAgent.match(/chrome\/([\d.]+)/)[1];
                    break;

                case 'Firefox':
                    versions = UserAgent.match(/firefox\/([\d.]+)/)[1];
                    break;
                case 'Opera':
                    versions = UserAgent.match(/opera\/([\d.]+)/)[1];
                    break;
                case 'Safari':
                    versions = UserAgent.match(/version\/([\d.]+)/)[1];
                    break;
                case 'Edge':
                    versions = UserAgent.match(/edge\/([\d.]+)/)[1];
                    break;
                case 'QQBrowser':
                    versions = UserAgent.match(/qqbrowser\/([\d.]+)/)[1];
                    break;
            }

            return parseInt(versions);
        }

2.获取当前浏览器类型Func

function getBrowser() {
            const UserAgent = navigator.userAgent.toLowerCase();
            const browserInfo = {};

            const browserObj = {
                IE: window.ActiveXObject || "ActiveXObject" in window,
                Chrome: UserAgent.indexOf('chrome') > -1 && UserAgent.indexOf('safari') > -1,
                Firefox: UserAgent.indexOf('firefox') > -1,
                Opera: UserAgent.indexOf('opera') > -1,
                Safari: UserAgent.indexOf('safari') > -1 && UserAgent.indexOf('chrome') == -1,
                Edge: UserAgent.indexOf('edge') > -1,
                QQBrowser: /qqbrowser/.test(UserAgent),
                WeixinBrowser: /MicroMessenger/i.test(UserAgent)
            };

            for (let key in browserObj) {
                if (browserObj.hasOwnProperty(key) && browserObj[key]) {
                    browserInfo.browser = key;
                    browserInfo.versions = getBrowserVersion(key, UserAgent);
                    break
                }
            }

            return browserInfo;
        }

3.网页要求最低浏览器版本要求

// 比如vue3+elementPlus要求浏览器最低版本要求 Edge ≥ 79	Firefox ≥ 78 Chrome ≥ 64	Safari ≥ 12 
        const browserList = [
            {
                browser: 'Edge',
                versions: 79
            },
            {
                browser: 'Firefox',
                versions: 78
            },
            {
                browser: 'Chrome',
                versions: 64
            },
            {
                browser: 'Safari',
                versions: 12
            }
        ]

        

4.判断是否需要升级浏览器版本Func

 function isUpgradeBrowser() {
            const { browser, versions } = getBrowser()

            for (const objKey of browserList) {
                if (objKey.browser === browser && versions < objKey.versions) {
                    // 需要升级
                    return {
                        browser,
                        versions,
                        lowestVersions: objKey.versions,
                        isUpdate: true
                    }
                }
            }

            // 默认不需要升级
            return {
                browser,
                versions,
                isUpdate: false
            }
        }

        

5.案例网页应用
需求:对于浏览器低于以上最低版本要求的浏览器加以提示升级浏览器说明

   const {isUpdate,browser,versions,lowestVersions=''} = isUpgradeBrowser()
     if (isUpdate) {
         alert(`您当前${browser}浏览器版本过低(版本${versions}),建议访问网页不低于${lowestVersions}版本,如果出现不能访问页面情况,请您升级浏览器版本在尝试!`)
     }
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

追逐梦想之路_随笔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值