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 相关文章推荐
使两个iframe的高度与内容自适应,且相等
Nov 20 Javascript
javascript 浏览器检测代码精简版
Mar 04 Javascript
JavaScript学习笔记之内置对象
Jan 22 Javascript
跟我学习javascript解决异步编程异常方案
Nov 23 Javascript
js实现表单及时验证功能 用户信息立即验证
Sep 13 Javascript
浅析js的模块化编写 require.js
Dec 07 Javascript
javascript容错处理代码(屏蔽js错误)
Jan 20 Javascript
Vue.js学习笔记之修饰符详解
Jul 25 Javascript
使用watch监听路由变化和watch监听对象的实例
Feb 24 Javascript
详解.vue文件解析的实现
Jun 11 Javascript
Vue props用法详解(小结)
Jul 03 Javascript
微信内置浏览器图片查看器的代码实例
Oct 08 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 编程安全性小结
2010/01/08 PHP
php empty函数判断mysql表单是否为空
2010/04/12 PHP
php生成PDF格式文件并且加密
2015/06/22 PHP
PHP实现给定一列字符,生成指定长度的所有可能组合示例
2019/06/22 PHP
JavaScript 捕获窗口关闭事件
2009/07/26 Javascript
IE6 弹出Iframe层中的文本框“经常”无法获得输入焦点
2009/12/27 Javascript
5个最佳的Javascript日期处理类库分享
2012/04/15 Javascript
js导航菜单(自写)简单大方
2013/03/28 Javascript
jQuery教程 $()包装函数来实现数组元素分页效果
2013/08/13 Javascript
基于jQuery实现网页进度显示插件
2015/03/04 Javascript
基于jQuery Ajax实现上传文件
2016/03/24 Javascript
jQuery获取cookie值及删除cookie用法实例
2016/04/15 Javascript
限制只能输入数字的实现代码
2016/05/16 Javascript
Javascript数组中push方法用法分析
2016/10/31 Javascript
JavaScript html5利用FileReader实现上传功能
2020/03/27 Javascript
详解在Vue中通过自定义指令获取dom元素
2017/03/04 Javascript
Vue cli 引入第三方JS和CSS的常用方法分享
2018/01/20 Javascript
关于Vue项目跨平台运行问题的解决方法
2018/09/18 Javascript
vue 配置多页面应用的示例代码
2018/10/22 Javascript
深入学习JavaScript中的bom
2019/05/27 Javascript
[05:48]DOTA2英雄梦之声vol21 屠夫
2014/06/20 DOTA
[01:42]辉夜杯战队访谈宣传片—FANTUAN
2015/12/25 DOTA
[01:01:04]2018DOTA2亚洲邀请赛 4.5 淘汰赛 OpTic vs TNC 第一场
2018/04/06 DOTA
在Python中使用mechanize模块模拟浏览器功能
2015/05/05 Python
python 输出所有大小写字母的方法
2019/01/02 Python
Python实现简单石头剪刀布游戏
2021/01/20 Python
python多线程同步实例教程
2019/08/11 Python
django 简单实现登录验证给你
2019/11/06 Python
python3反转字符串的3种方法(小结)
2019/11/07 Python
Python: glob匹配文件的操作
2020/12/11 Python
深入浅出CSS3 background-clip,background-origin和border-image教程
2011/01/27 HTML / CSS
洲际酒店集团美国官网:IHG美国
2017/11/16 全球购物
Linux常见面试题
2016/10/04 面试题
新郎父亲婚宴答谢词
2014/01/11 职场文书
诚信考试主题班会
2015/08/17 职场文书
2019各种保证书范文
2019/06/24 职场文书