Javascript中獲取瀏覽器類型和操作系統(tǒng)版本等客戶端信息常用代碼
/**
* @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;
},
/**獲得商品分類搜索編號(hào)**/
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ù)到后臺(tái)**********/
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
以上就是本文的全部?jī)?nèi)容,了解更多JavaScript的語(yǔ)法,大家可以查看:《JavaScript 參考教程》、《JavaScript代碼風(fēng)格指南》,也希望大家多多支持腳本之家。
- python中字符串類型json操作的注意事項(xiàng)
- javascript中對(duì)Date類型的常用操作小結(jié)
- JavaScript中各種引用類型的常用操作方法小結(jié)
- JavaScript中的操作符類型轉(zhuǎn)換示例總結(jié)
- js 變量類型轉(zhuǎn)換常用函數(shù)與代碼[比較全]
- 整理JavaScript對(duì)DOM中各種類型的元素的常用操作
- 詳解JavaScript中常用的函數(shù)類型
- Javascript中常用類型的格式化方法小結(jié)
- javascript基本數(shù)據(jù)類型及類型檢測(cè)常用方法小結(jié)
- JavaScript類型相關(guān)的常用操作總結(jié)
相關(guān)文章
一文教你如何像導(dǎo)入JS模塊一樣導(dǎo)入CSS
HTML中通過(guò)使用css可以讓網(wǎng)頁(yè)的美觀效果更進(jìn)一步,下面這篇文章主要給大家介紹了如何像導(dǎo)入JS模塊一樣導(dǎo)入CSS的相關(guān)資料,文中給出了詳細(xì)的實(shí)例代碼,需要的朋友可以參考下2021-09-09
next.js?getServerSideProps源碼解析
這篇文章主要為大家介紹了next.js?getServerSideProps源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-10-10
元素的內(nèi)聯(lián)事件處理函數(shù)的特殊作用域在各瀏覽器中存在差異
在一個(gè)元素的屬性中綁定事件,實(shí)際上就創(chuàng)建了一個(gè)內(nèi)聯(lián)事件處理函數(shù)(如<h1 onclick="alert(this);"...>...</h1>),內(nèi)聯(lián)事件處理函數(shù)有其特殊的作用域鏈,并且各瀏覽器的實(shí)現(xiàn)細(xì)節(jié)也有差異。2011-01-01
js點(diǎn)擊按鈕實(shí)現(xiàn)水波紋效果代碼(CSS3和Canves)
這篇文章主要為大家詳細(xì)介紹了點(diǎn)擊按鈕實(shí)現(xiàn)水波紋效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-09-09
用xhtml+css寫(xiě)的相冊(cè)自適應(yīng) - 類似九宮格[兼容 ff ie6 ie7 opear ]
用xhtml+css寫(xiě)的相冊(cè)自適應(yīng) - 類似九宮格[兼容 ff ie6 ie7 opear ]...2007-05-05
基于JS實(shí)現(xiàn)新聞列表無(wú)縫向上滾動(dòng)實(shí)例代碼
當(dāng)新聞?shì)^多,并且空前有限的時(shí)候,使用滾動(dòng)是一個(gè)不錯(cuò)的選擇,本章節(jié)就通過(guò)代碼實(shí)例介紹一下如何實(shí)現(xiàn)此效果,對(duì)無(wú)縫向上滾動(dòng)實(shí)例代碼感興趣的朋友一起學(xué)習(xí)吧2016-01-01

