zoukankan      html  css  js  c++  java
  • [转]JS判断访问设备、客户端操作系统类型

    本文转自:http://www.cnblogs.com/duanguyuan/p/3534470.html

    先给出一个实例:判断windows、linux、android

    复制以下代码另存为html文件即可。

    复制代码
    <html>
    <head>
    <title>判断操作系统</title>
    <script type="text/javascript">
    function detectOS() { 
    var sUserAgent = navigator.userAgent; 
    
    var isWin = (navigator.platform == "Win32") || (navigator.platform == "Windows"); 
    var isMac = (navigator.platform == "Mac68K") || (navigator.platform == "MacPPC") || (navigator.platform == "Macintosh") || (navigator.platform == "MacIntel"); 
    if (isMac) return "Mac"; 
    var isUnix = (navigator.platform == "X11") && !isWin && !isMac; 
    if (isUnix) return "Unix"; 
    var isLinux = (String(navigator.platform).indexOf("Linux") > -1); 
    
    var bIsAndroid = sUserAgent.toLowerCase().match(/android/i) == "android";
    if (isLinux) {
    if(bIsAndroid) return "Android";
    else return "Linux"; 
    }
    if (isWin) { 
    var isWin2K = sUserAgent.indexOf("Windows NT 5.0") > -1 || sUserAgent.indexOf("Windows 2000") > -1; 
    if (isWin2K) return "Win2000"; 
    var isWinXP = sUserAgent.indexOf("Windows NT 5.1") > -1 || 
    sUserAgent.indexOf("Windows XP") > -1; 
    if (isWinXP) return "WinXP"; 
    var isWin2003 = sUserAgent.indexOf("Windows NT 5.2") > -1 || sUserAgent.indexOf("Windows 2003") > -1; 
    if (isWin2003) return "Win2003"; 
    var isWinVista= sUserAgent.indexOf("Windows NT 6.0") > -1 || sUserAgent.indexOf("Windows Vista") > -1; 
    if (isWinVista) return "WinVista"; 
    var isWin7 = sUserAgent.indexOf("Windows NT 6.1") > -1 || sUserAgent.indexOf("Windows 7") > -1; 
    if (isWin7) return "Win7"; 
    } 
    return "other"; 
    } 
    document.writeln("您的操作系统是:" + detectOS()); 
    alert(detectOS());
    </script>
    </head>
    <body>
    </body>
    </html>
    复制代码

     

     

    判断当前访问网站的设备是否是PC

    复制代码
    //平台、设备和操作系统
    var system ={
    win : false,
    mac : false,
    xll : false
    };
    //检测平台
    var p = navigator.platform;
    system.win = p.indexOf("Win") == 0;
    system.mac = p.indexOf("Mac") == 0;
    system.x11 = (p == "X11") || (p.indexOf("Linux") == 0);
    //跳转语句
    if(system.win||system.mac||system.xll){
    alert("PC访问");
    }else{
    alert("非PC访问");
    }
    复制代码

     


    JS判断访问设备(userAgent)加载不同页面。代码如下:

    复制代码
    function browserRedirect() {
    var sUserAgent = navigator.userAgent.toLowerCase();
    var bIsIpad = sUserAgent.match(/ipad/i) == "ipad";
    var bIsIphoneOs = sUserAgent.match(/iphone os/i) == "iphone os";
    var bIsMidp = sUserAgent.match(/midp/i) == "midp";
    var bIsUc7 = sUserAgent.match(/rv:1.2.3.4/i) == "rv:1.2.3.4";
    var bIsUc = sUserAgent.match(/ucweb/i) == "ucweb";
    var bIsAndroid = sUserAgent.match(/android/i) == "android";
    var bIsCE = sUserAgent.match(/windows ce/i) == "windows ce";
    var bIsWM = sUserAgent.match(/windows mobile/i) == "windows mobile";
    if (! (bIsIpad || bIsIphoneOs || bIsMidp || bIsUc7 || bIsUc || bIsAndroid || bIsCE || bIsWM)) {
    window.location.href = B页面;
    }
    }
    browserRedirect();
    复制代码

     


    JS判断客户端操作系统类型(platform)来定义不同的字体表现。代码如下:

    复制代码
    // 更详细的探测当前客户端使用的操作系统
    function detectOS() {
    var sUserAgent = navigator.userAgent;
    var isWin = (navigator.platform == "Win32") || (navigator.platform == "Windows");
    var isMac = (navigator.platform == "Mac68K") || (navigator.platform == "MacPPC") || (navigator.platform == "Macintosh") || (navigator.platform == "MacIntel"); if (isMac) 
    return "Mac";
    var isUnix = (navigator.platform == "X11") && !isWin && !isMac;
    if (isUnix) return "Unix";
    var isLinux = (String(navigator.platform).indexOf("Linux") > -1);
    if (isLinux) return "Linux";
    if (isWin) {
    var isWin2K = sUserAgent.indexOf("Windows NT 5.0") > -1 || sUserAgent.indexOf("Windows 2000") > -1;
    if (isWin2K) return "Win2000";
    var isWinXP = sUserAgent.indexOf("Windows NT 5.1") > -1 || sUserAgent.indexOf("Windows XP") > -1;
    if (isWinXP) return "WinXP";
    var isWin2003 = sUserAgent.indexOf("Windows NT 5.2") > -1 || sUserAgent.indexOf("Windows 2003") > -1;
    if (isWin2003) return "Win2003";
    var isWin2003 = sUserAgent.indexOf("Windows NT 6.0") > -1 || sUserAgent.indexOf("Windows Vista") > -1;
    if (isWin2003) return "WinVista"; 
    var isWin2003 = sUserAgent.indexOf("Windows NT 6.1") > -1 || sUserAgent.indexOf("Windows 7") > -1;
    if (isWin2003) return "Win7";
    } 
    return "other"; 
    }
    复制代码

     

     

    另一种方法,使用mootools框架:

    复制代码
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
    <head>
    <title>未命名</title>
    <meta http-equiv="content-type" content="text/html;charset=utf-8" />
    <meta name="generator" content="Geany 0.21" />
    </head>
    <body>
    <h1>test Browser.Platform.linux</h1>
    <script type="text/Javascript" language="JavaScript">
    var s = null;
    s = Browser.Platform.linux;
    alert(s);
    if (Browser.Platform.linux)
    alert("linux");
    else
    alert("not linux");
    </script>
    </body>
    </html>
    复制代码

     

     


    使用JS架框有现成的判断 
    例如motools架框中:
    Browser.Platform.mac - (boolean) 当前操作系统是否为Mac
    Browser.Platform.win - (boolean) 当前操作系统是否为Windows
    Browser.Platform.linux - (boolean) 当前操作系统是否为Linux
    Browser.Platform.ipod - (boolean) 当前操作系统是否为iPod Touch / iPhone
    Browser.Platform.other - (boolean) 当前操作系统即不是Mac, 也不是Windows或Linux
    Browser.Platform.name - (string) 当前操作系统的名称

    附:
    在WIN7系统下和XP系统下的宋体显示是不一样的、有的时候容易撑破格子 
    而且WIN7下面微软雅黑是系统自带的、效果很好! 
    以下的代码可以方便我们判断不同的系统在使用不同系统里自带效果好的字体!或者其它一些东西! 
    调用办法

    各系统下最佳字体
    Win7 and Vista
    "Microsoft Yahei",Tahoma 
    XP
    Tahoma, Helvetica, Arial, 'SimSun', sans-serif 
    MAC
    "Helvetica Neue",Helvetica,"Hiragino Sans GB",Arial
    淘宝上用的通用的系统字体 
    Tahoma, Helvetica, Arial, 'Microsoft Yahei', sans-serif

    参考资料:http://www.camnpr.com/archives/js-judge-device-and-os.html

  • 相关阅读:
    交叉熵的数学原理及应用——pytorch中的CrossEntropyLoss()函数
    pytorch中如何使用DataLoader对数据集进行批处理
    Pytorch中的自动求导函数backward()所需参数含义
    Pytorch中的torch.cat()函数
    Pytorch中的squeeze()和unsqueeze()函数
    UBUNTU18.04安装网易云音乐并直接图标启动
    UBUNTU18.4环境下使用更好用的搜索引擎(无奈,只能起这样的标题)
    Ubuntu 18.04换国内源 中科大源 阿里源 163源 清华源
    共享栈
    C++(十七) — 宏代码、内联函数
  • 原文地址:https://www.cnblogs.com/freeliver54/p/3570760.html
Copyright © 2011-2022 走看看