Javascript中獲取瀏覽器類型和操作系統(tǒng)版本等客戶端信息常用代碼
更新時間:2016年06月28日 10:19:16 作者:賀臣
跟蹤一些最基本的客戶端訪問信息,這里將一些公用的代碼總結(jié)下來,需要的朋友可以參考下
/** * @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; }, /**獲得操作系統(tǒng)***/ 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; }, /****獲得站內(nèi)搜索關(guān)鍵字****/ 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 ""; }, /******將值插入到數(shù)組中*********/ PushValue: function (key, value) { if (this._ch != undefined) { this._ch[key] = value; } }, /***自定義參數(shù)**/ Param: function (value) { if (this._ch != undefined) { this._ch["_ps"] = value; } }, /******提交數(shù)據(jù)到后臺**********/ 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; } //初始化正則表達(dá)式 匹配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參數(shù) 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; } //獲取客戶端相關(guān)信息 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
以上就是本文的全部內(nèi)容,了解更多JavaScript的語法,大家可以查看:《JavaScript 參考教程》、《JavaScript代碼風(fēng)格指南》,也希望大家多多支持腳本之家。
您可能感興趣的文章:
- python中字符串類型json操作的注意事項
- javascript中對Date類型的常用操作小結(jié)
- JavaScript中各種引用類型的常用操作方法小結(jié)
- JavaScript中的操作符類型轉(zhuǎn)換示例總結(jié)
- js 變量類型轉(zhuǎn)換常用函數(shù)與代碼[比較全]
- 整理JavaScript對DOM中各種類型的元素的常用操作
- 詳解JavaScript中常用的函數(shù)類型
- Javascript中常用類型的格式化方法小結(jié)
- javascript基本數(shù)據(jù)類型及類型檢測常用方法小結(jié)
- JavaScript類型相關(guān)的常用操作總結(jié)
相關(guān)文章
一文教你如何像導(dǎo)入JS模塊一樣導(dǎo)入CSS
HTML中通過使用css可以讓網(wǎng)頁的美觀效果更進(jìn)一步,下面這篇文章主要給大家介紹了如何像導(dǎo)入JS模塊一樣導(dǎo)入CSS的相關(guān)資料,文中給出了詳細(xì)的實例代碼,需要的朋友可以參考下2021-09-09next.js?getServerSideProps源碼解析
這篇文章主要為大家介紹了next.js?getServerSideProps源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-10-10元素的內(nèi)聯(lián)事件處理函數(shù)的特殊作用域在各瀏覽器中存在差異
在一個元素的屬性中綁定事件,實際上就創(chuàng)建了一個內(nèi)聯(lián)事件處理函數(shù)(如<h1 onclick="alert(this);"...>...</h1>),內(nèi)聯(lián)事件處理函數(shù)有其特殊的作用域鏈,并且各瀏覽器的實現(xiàn)細(xì)節(jié)也有差異。2011-01-01js點擊按鈕實現(xiàn)水波紋效果代碼(CSS3和Canves)
這篇文章主要為大家詳細(xì)介紹了點擊按鈕實現(xiàn)水波紋效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-09-09用xhtml+css寫的相冊自適應(yīng) - 類似九宮格[兼容 ff ie6 ie7 opear ]
用xhtml+css寫的相冊自適應(yīng) - 類似九宮格[兼容 ff ie6 ie7 opear ]...2007-05-05