温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

vue开发中不同浏览器的类型判断方式是什么

发布时间:2022-03-28 09:19:59 阅读:550 作者:小新 栏目:开发技术
Vue开发者专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

这篇文章将为大家详细讲解有关vue开发中不同浏览器的类型判断方式是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

    一、通过navigator.userAgent来进行浏览器类型判断

    定义和用法

    userAgent 属性是一个只读的字符串,声明了浏览器用于 HTTP 请求的用户代理头的值。

    一般来讲,它是在 navigator.appCodeName 的值之后加上斜线和 navigator.appVersion 的值构成的。

    例如:Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322)。

    注:用户代理头:user-agent header。

    语法

    navigator.userAgent

    navigator.userAgent使用场景

    判断是Android或者iOS
    /**
     * 判断浏览器类型:Android/iOS
     */
    function getOSType() {
      if (/(Android)/i.test(navigator.userAgent)) {
        return 'Android'
      } else if (/(iPhone|iPad|iPod|iOS)/i.test(navigator.userAgent)) {
        return 'iOS'
      }
    }
    判断是否是微信浏览器
    function is_weixin(){
      if (/(micromessenger)/i.test(navigator.userAgent)) {
        return true
      } else {
        return false
      }
    }
    判断是否是QQ浏览器
    function is_qq(){
      if (/(MQQBrowser)/i.test(navigator.userAgent)) {
        return true
      } else {
        return false
      }
    }
    判断是手机端、平板还是PC
    var os = function (){
        var ua = navigator.userAgent,
        isWindowsPhone = /(?:Windows Phone)/.test(ua),
        isSymbian = /(?:SymbianOS)/.test(ua) || isWindowsPhone,
        isAndroid = /(?:Android)/.test(ua),
        isFireFox = /(?:Firefox)/.test(ua),
        isChrome = /(?:Chrome|CriOS)/.test(ua),
        isTablet = /(?:iPad|PlayBook)/.test(ua) || (isAndroid && !/(?:Mobile)/.test(ua)) || (isFireFox && /(?:Tablet)/.test(ua)),
        isPhone = /(?:iPhone)/.test(ua) && !isTablet,
        isPc = !isPhone && !isAndroid && !isSymbian;
        return {
            isTablet: isTablet,
            isPhone: isPhone,
            isAndroid: isAndroid,
            isPc: isPc
        };
    }();
     
    if (os.isAndroid || os.isPhone) {
      console.log("手机")
    } else if (os.isTablet) {
      console.log("平板")
    } else if(os.isPc) {
      console.log("电脑")
    }

    navigator.userAgent格式

    部分浏览器格式如下(PC):

    • chrome浏览器:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36

    • IE11浏览器:Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729; McAfee; rv:11.0) like Gecko

    • safari 5.1 – MAC:User-Agent:Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_8; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50

    • safari 5.1 – Windows:User-Agent:Mozilla/5.0 (Windows; U; Windows NT 6.1; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50

    • Firefox 4.0.1 – MAC:User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:2.0.1) Gecko/20100101 Firefox/4.0.1

    • Firefox 4.0.1 – Windows:User-Agent:Mozilla/5.0 (Windows NT 6.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1

    • Opera 11.11 – MAC:User-Agent:Opera/9.80 (Macintosh; Intel Mac OS X 10.6.8; U; en) Presto/2.8.131 Version/11.11

    • Opera 11.11 – Windows:User-Agent:Opera/9.80 (Windows NT 6.1; U; en) Presto/2.8.131 Version/11.11

    • 360浏览器:User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; 360SE)

    • 搜狗浏览器 1.x:User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; SE 2.X MetaSr 1.0; SE 2.X MetaSr 1.0; .NET CLR 2.0.50727; SE 2.X MetaSr 1.0)

    部分浏览器格式如下(移动端):

    • iphone6:Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1

    • ipad:Mozilla/5.0 (iPad; CPU OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1

    • Android QQ浏览器 For android:User-Agent: MQQBrowser/26 Mozilla/5.0 (Linux; U; Android 2.3.7; zh-cn; MB200 Build/GRJ22; CyanogenMod-7) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1

    • Windows Phone:User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; Titan)

    • BlackBerry:User-Agent: Mozilla/5.0 (BlackBerry; U; BlackBerry 9800; en) AppleWebKit/534.1+ (KHTML, like Gecko) Version/6.0.0.337 Mobile Safari/534.1+

    • UC标准:User-Agent: NOKIA5700/ UCWEB7.0.2.37/28/999

    二、通过navigator.platform来进行浏览器类型判断

    因为各大浏览器厂商可以对navigator.userAgent进行设置,导致了userAgent格式的混乱。例如:华为mate10 默认浏览器 userAgent的信息如下:

    Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.89 Safari/537.36

    结果可想而知,根据userAgent做出的判断:当前浏览器类型为PC。所以需要在通过navigator.userAgent判断的基础上再对navigator.platform进行判断,以此来确保浏览器类型判断的准确性。

    定义和用法

    platform 属性是一个只读的字符串,声明了运行浏览器的操作系统和(或)硬件平台。

    语法

    navigator.platform

    navigator.platform使用场景

    判断是Android或者iOS
    /**
     * 判断是Android或者iOS
     */
    function getPlatformType() {
      if ('Android' === navigator.platform) {
        return 'Android'
      } else if ('iPhone' === navigator.platform || 'iPod' === navigator.platform || 'iPad' === navigator.platform) {
        return 'iOS'
      }
    }

    navigator.platform返回的可能值

    > HP-UX
    > Linux i686
    > Linux armv7l
    > Mac68K
    > MacPPC
    > MacIntel
    > SunOS
    > Win16
    > Win32
    > WinCE
    > iPhone
    > iPod
    > iPad
    > Android
    >黑莓
    >歌剧

    三、通过屏幕尺寸来进行浏览器类型判断

    通过屏幕大小可以判断浏览器类型

    获取屏幕宽度的方法如下:

    • 网页可见区域宽:document.body.clientWidth

    • 网页可见区域高:document.body.clientHeight

    • 网页可见区域宽:document.body.offsetWidth (包括边线的宽)

    • 网页可见区域高:document.body.offsetHeight (包括边线的宽)

    关于“vue开发中不同浏览器的类型判断方式是什么”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

    亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

    向AI问一下细节

    免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

    AI

    开发者交流群×