Javascript中获取浏览器类型和操作系统版本等客户端信息常用代码


Posted in Javascript onJune 28, 2016
/**
* @author hechen
*/
var gs = {
  /**获得屏幕宽度**/
  ScreenWidth: function () {
    return window.screen.width;
  },
  /***获得屏幕高度**/
  ScreenHeight: function () {
    return window.screen.height;
  },
  /**获得浏览器***/
  Browse: function () {
    var browser = {};
    var userAgent = navigator.userAgent.toLowerCase();
    var s;
    (s = userAgent.match(/msie ([\d.]+)/)) ? browser.ie = s[1] : (s = userAgent.match(/firefox\/([\d.]+)/)) ? browser.firefox = s[1] : (s = userAgent.match(/chrome\/([\d.]+)/)) ? browser.chrome = s[1] : (s = userAgent.match(/opera.([\d.]+)/)) ? browser.opera = s[1] : (s = userAgent.match(/version\/([\d.]+).*safari/)) ? browser.safari = s[1] : 0;
    var version = "";
    if (browser.ie) {
      version = 'IE ' + browser.ie;
    }
    else {
      if (browser.firefox) {
        version = 'firefox ' + browser.firefox;
      }
      else {
        if (browser.chrome) {
          version = 'chrome ' + browser.chrome;
        }
        else {
          if (browser.opera) {
            version = 'opera ' + browser.opera;
          }
          else {
            if (browser.safari) {
              version = 'safari ' + browser.safari;
            }
            else {
              version = '未知浏览器';
            }
          }
        }
      }
    }
    return version;
  },
  /**获得操作系统***/
  ClientOs: function () {
    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 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";
  },
  /****获得客户端ID****/
  ClientID: function (name) {
    var cookies = document.cookie.split(";");
    var value = "";
    for (var i = 0; i < cookies.length; i++) {
      var temp = cookies[i].split("=");
      var tempValue = temp[0].replace(/(^\s*)|(\s*$)/g, "");
      if (tempValue == name) {
        value = unescape(temp[1]);
        break;
      }
    }
    return value;
  },
  /****获得商品ID****/
  SearchGid: function () {
    var url = window.location.href;
    var value = "";
    if (url != undefined && url != "") {
      url.replace(/-\d+-/, function (a, b, c) {
        if (a != undefined && a != "" && a.length > 2) {
          value = a.substring(1, a.length - 1);
        }
      });
    }
    return value;
  },
  /****获得站内搜索关键字****/
  SearchKey: function () {
    var url = window.location.href;
    var value = "";
    if (url != undefined && url != "") {
      url.replace(/[=].*/, function (a, b, c) {
        if (a != undefined && a != "" && a.length > 1) {
          value = a.substring(1);
        }
      });
    }
    return value;
  },
  /**获得商品分类搜索编号**/
  SearchCategory: function () {
    var url = window.location.href;
    var value = "";
    if (url != undefined && url != "") {
      url.replace(/-\d+/, function (a, b, c) {
        if (a != undefined && a != "" && a.length > 1) {
          value = a.substring(1);
        }
      });
    }
    return value;
  },
  /****站外搜索 Google 百度*****/
  SearchSite: function (type) {
    var referrer = document.referrer;
    if (referrer != undefined && referrer != "") {
      if ("google" == type) {
        url.replace(new RegExp("(?:^|/?|&)q=([^&]*)(?:&|$)"), function (a, b, c) {
          if (this._ch != undefined && a != undefined && a.length > 0) {
            a = a.substring(a.indexOf("=") + 1, a.length - 1);
            return a;
          }
        });
      } else if ("baidu" == type) {
        url.replace(new RegExp("(?:^|/?|&)wd=([^&]*)(?:&|$)"), function (a, b, c) {
          if (this._ch != undefined && a != undefined && a.length > 0) {
            a = a.substring(a.indexOf("=") + 1, a.length - 1);
            return a;
          }
        });
      } else if ("sogou" == type) {
        url.replace(new RegExp("(?:^|/?|&)query=([^&]*)(?:&|$)"), function (a, b, c) {
          if (this._ch != undefined && a != undefined && a.length > 0) {
            a = a.substring(a.indexOf("=") + 1, a.length - 1);
            return a;
          }
        });
      } else if ("bing" == type) {
        url.replace(new RegExp("(?:^|/?|&)q=([^&]*)(?:&|$)"), function (a, b, c) {
          if (this._ch != undefined && a != undefined && a.length > 0) {
            a = a.substring(a.indexOf("=") + 1, a.length - 1);
            return a;
          }
        });
      }
    }
    return "";
  },
  /******将值插入到数组中*********/
  PushValue: function (key, value) {
    if (this._ch != undefined) {
      this._ch[key] = value;
    }
  },
  /***自定义参数**/
  Param: function (value) {
    if (this._ch != undefined) {
      this._ch["_ps"] = value;
    }
  },
  /******提交数据到后台**********/
  PostData: function () {
    $.ajax({
      url: "http://localhost:28482/Ajax/StatActions.aspx?t=" + Math.random(),
      type: "post",
      data: this._ch,
      success: function (data) { }
    });
  },
  /***初始化**/
  Init: function () {
    if (this._ch != undefined) {
      this._ch = undefined;
    }
    this._ch = {};
    if (this._Reg != undefined) {
      this._Reg = undefined;
    }
    //初始化正则表达式 匹配URL

    this._Reg = new Array();
    this._Reg[0] = "http://www.google.com.hk(.*)";
    this._Reg[1] = "http://www.baidu.com(.*)";
    this._Reg[2] = "http://www.sogou.com(.*)";
    this._Reg[3] = "http://cn.bing.com(.*)";

    //分析URL参数
    var hostURL = window.location.href;
    if (hostURL != undefined && hostURL != "") {
      if ((new RegExp(this._Reg[4])).test(hostURL)) {
        this._ch["_gid"] = this.SearchGid();
      } else if ((new RegExp(this._Reg[7])).test(hostURL)) {

      } else if ((new RegExp(this._Reg[5])).test(hostURL)) {
        this._ch["_cid"] = this.SearchCategory();
      } else if ((new RegExp(this._Reg[6])).test(hostURL)) {
        this._ch["_key"] = this.SearchKey();
      }
      this._ch["_tu"] = hostURL;
    }
    var referrer = document.referrer;
    if (referrer != undefined && referrer != "") {
      if ((new RegExp(this._Reg[0])).test(referrer)) {
        this._ch["_key"] = this.SearchSite("google");
      } else if ((new RegExp(this._Reg[1])).test(referrer)) {
        this._ch["_key"] = this.SearchSite("baidu");
      } else if ((new RegExp(this._Reg[2])).test(referrer)) {
        this._ch["_key"] = this.SearchSite("sogou");
      } else if ((new RegExp(this._Reg[3])).test(referrer)) {
        this._ch["_key"] = this.SearchSite("bing");
      }
      this._ch["_su"] = referrer;
    }

    //获取客户端相关信息
    this._ch["_sw"] = this.ScreenWidth();
    this._ch["_sh"] = this.ScreenHeight();
    this._ch["_bw"] = this.Browse();
    this._ch["_cs"] = this.ClientOs();
    this._ch["_mid"] = this.ClientID("from_channelid");
    this._ch["_ctid"] = this.ClientID("ClientKey");

  },
  _ch: undefined,
  _Reg: undefined

以上就是本文的全部内容,了解更多JavaScript的语法,大家可以查看:《JavaScript 参考教程》、《JavaScript代码风格指南》,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript基本概念初级讲解论坛贴的学习记录
Feb 22 Javascript
Jquery图片滚动与幻灯片的实例代码
Apr 08 Javascript
JavaScript利用append添加元素报错的解决方法
Jul 01 Javascript
老生常谈遮罩层 滚动条的问题
Apr 29 Javascript
jQuery源码分析之init的详细介绍
Feb 13 Javascript
深入理解vue $refs的基本用法
Jul 13 Javascript
微信小程序倒计时功能实例代码
Jul 17 Javascript
node.js使用redis储存session的方法
Sep 26 Javascript
jQuery中DOM操作原则实例分析
Aug 01 jQuery
Jquery实现获取子元素的方法分析
Aug 24 jQuery
Vue项目打包部署到iis服务器的配置方法
Oct 14 Javascript
如何基于JavaScript判断图片是否加载完成
Dec 28 Javascript
获取input标签的所有属性的方法
Jun 28 #Javascript
JavaScript ES6的新特性使用新方法定义Class
Jun 28 #Javascript
javascript 常用验证函数总结
Jun 28 #Javascript
JS传递对象数组为参数给后端,后端获取的实例代码
Jun 28 #Javascript
JavaScript ES5标准中新增的Array方法
Jun 28 #Javascript
jQuery 中ajax异步调用的四种方式
Jun 28 #Javascript
jQuery 调用WebService 实例讲解
Jun 28 #Javascript
You might like
《PHP边学边教》(02.Apache+PHP环境配置――下篇)
2006/12/13 PHP
PHP5.3安装Zend Guard Loader图文教程
2014/09/29 PHP
php中mkdir函数用法实例分析
2014/11/15 PHP
Thinkphp和Bootstrap结合打造个性的分页样式(推荐)
2016/08/01 PHP
php中文字符串截取多种方法汇总
2016/10/06 PHP
PHP编程实现微信企业向用户付款的方法示例
2017/07/26 PHP
PHP实现基于图的深度优先遍历输出1,2,3...n的全排列功能
2017/11/10 PHP
css图片自适应大小
2007/11/28 Javascript
解释&amp;&amp;和||在javascript中的另类用法
2014/07/28 Javascript
JS中frameset框架弹出层实例代码
2016/04/01 Javascript
Ionic如何创建APP项目
2016/06/03 Javascript
移动端js图片查看器
2016/11/17 Javascript
canvas绘图不清晰的解决方案
2017/02/28 Javascript
Ionic2调用本地SQlite实例
2017/04/22 Javascript
vue element-ui 绑定@keyup事件无效的解决方法
2018/03/09 Javascript
Node.js连接Sql Server 2008及数据层封装详解
2018/08/27 Javascript
微信小程序使用Vant Weapp组件库的方法步骤
2019/08/01 Javascript
[01:03:33]Alliance vs TNC 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/18 DOTA
使用 Python 获取 Linux 系统信息的代码
2014/07/13 Python
python实现给字典添加条目的方法
2014/09/25 Python
不到20行代码用Python做一个智能聊天机器人
2019/04/19 Python
基于Python词云分析政府工作报告关键词
2020/06/02 Python
解决python和pycharm安装gmpy2 出现ERROR的问题
2020/08/28 Python
CSS的pointer-events属性详细介绍(作用和注意事项)
2014/04/23 HTML / CSS
GAP阿联酋官网:GAP UAE
2017/11/30 全球购物
财务管理专业应届毕业生求职信
2013/09/22 职场文书
八年级历史教学反思
2014/01/10 职场文书
寒假思想汇报
2014/01/10 职场文书
学生宿舍管理制度
2014/01/30 职场文书
校园安全广播稿
2014/02/08 职场文书
情人节寄语大全
2014/04/11 职场文书
党员批评与自我批评
2014/10/15 职场文书
安全保证书格式
2015/02/28 职场文书
酒桌上的开场白
2015/06/01 职场文书
虚拟机linux端mysql数据库无法远程访问的解决办法
2021/05/26 MySQL
《王国之心》迎来了发售的20周年, 野村哲发布贺图
2022/04/11 其他游戏