zoukankan      html  css  js  c++  java
  • 浏览器设备判断

    浏览器设备判断

    一、定义

    var browser = {
        versions: function () {
            var u = navigator.userAgent, app = navigator.appVersion;
            return {
                trident: u.indexOf('Trident') > -1, //IE
                presto: u.indexOf('Presto') > -1, //opera
                webKit: u.indexOf('AppleWebKit') > -1, //webkit
                gecko: u.indexOf('Gecko') > -1 && u.indexOf('KHTML') == -1, //firefox
                mobile: !!u.match(/AppleWebKit.*Mobile.*/), //mobile
                ios: !!u.match(/(i[^;]+;( U;)? CPU.+Mac OS X/), //ios
                android: u.indexOf('Android') > -1 || u.indexOf('Linux') > -1, //android or uc
                android43: function () {
                    var s = navigator.userAgent.substr(navigator.userAgent.indexOf('Android') + 8, 3);
                    console.log("version android " + s, parseFloat(s) < 4.4);
                    return parseFloat(s) < 4.4 ? true : false
                }(),
                iPhone: u.indexOf('iPhone') > -1, //iPhone QQHD
                iPad: u.indexOf('iPad') > -1, //iPad
                webApp: u.indexOf('Safari') == -1
            };
        }()
    };

    二、判断

    if(browser.versions.ios){
            //ios
        }else if(browser.versions.android){
            //android
        }else if(!browser.versions.mobile) {
            //mobile
            console.log(browser.versions.userAgent);
        }

     判断是否为移动设备:

     function isMobile(){
          if(/android/i.test(navigator.userAgent)){
            //document.write("This is Android'browser.");//这是Android平台下浏览器
            return true;
          }
          if(/(iPhone|iPad|iPod|iOS)/i.test(navigator.userAgent)){
            //document.write("This is iOS'browser.");//这是iOS平台下浏览器
            return true;
          }
          if(/Linux/i.test(navigator.userAgent)){
            //document.write("This is Linux'browser.");//这是Linux平台下浏览器
            return true;
          }
          if(/Linux/i.test(navigator.platform)){
            //document.write("This is Linux operating system.");//这是Linux操作系统平台
            return true;
          }
          if(/MicroMessenger/i.test(navigator.userAgent)){
            //document.write("This is MicroMessenger'browser.");//这是微信平台下浏览器
            return true;
          }
          return false;
        }

    js 判断移动设备、pc端、android、iPhone、是否为微信、微博、qq空间(QQ空间会与QQ浏览器重叠,即苹果浏览器中的QQ浏览器重叠,所以在QQ空间中不需要return)

    varbrowser = {
    
      versions: function () {
         var u = navigator.userAgent, app = navigator.appVersion;
         return {     //移动终端浏览器版本信息
           trident: u.indexOf('Trident') > -1, //IE内核
           presto: u.indexOf('Presto') > -1, //opera内核
           webKit: u.indexOf('AppleWebKit') > -1, //苹果、谷歌内核
           gecko: u.indexOf('Gecko') > -1 && u.indexOf('KHTML') == -1, //火狐内核
           mobile: !!u.match(/AppleWebKit.*Mobile.*/), //是否为移动终端
           ios: !!u.match(/(i[^;]+;( U;)? CPU.+Mac OS X/), //ios终端
           android: u.indexOf('Android') > -1 || u.indexOf('Linux') > -1, //android终端或uc浏览器
           iPhone: u.indexOf('iPhone') > -1, //是否为iPhone或者QQHD浏览器
           iPad: u.indexOf('iPad') > -1, //是否iPad
           webApp: u.indexOf('Safari') == -1 //是否web应用程序,没有头部与底部
        };
      }(),
      language: (navigator.browserLanguage || navigator.language).toLowerCase()
    }            
    if (browser.versions.mobile) {//判断是否是移动设备打开。browser代码在下面
       var ua = navigator.userAgent.toLowerCase();//获取判断用的对象
       if (ua.match(/MicroMessenger/i) == "micromessenger") {
           //在微信中打开
       }
       if (ua.match(/WeiBo/i) == "weibo") {
           //在新浪微博客户端打开
       }
       if (ua.match(/QQ/i) == "qq") {
           //在QQ空间打开
       }
       if (browser.versions.ios) {
           //是否在IOS浏览器打开
       } 
       if(browser.versions.android){
           //是否在安卓浏览器打开
       }
    }else {
      //否则就是PC浏览器打开
    }
    

      

  • 相关阅读:
    WCF 、Web API 、 WCF REST 和 Web Service 的区别
    BusyIndicator using MVVM 忙碌状态指示器的的实现
    复制文件夹的方法 .net
    SQL/LINQ/Lamda
    CSLA验证规则总结
    C++中GB2312字符串和UTF-8之间的转换
    如何用VC编写供PB调用的DLL
    【转】lucene4.3.0 配置与调试
    cygwin主要命令
    【转】eclipse中window->preference选项中没有tomcat的解决方法
  • 原文地址:https://www.cnblogs.com/karila/p/6729639.html
Copyright © 2011-2022 走看看