console.log(initBrowserType());
function initBrowserType() {
var that = this;
var packageName = "whyun";
if (!window[packageName]) {
window[packageName] = {};
}
var MAX_360_CHROME_VERSION = 69; //以360極速瀏覽器的最大內(nèi)核版本為準(zhǔn)
function getIOSVersion(ua) {
if (/cpu (?:iphone )?os (\d+_\d+)/.test(ua)) {
return parseFloat(RegExp.$1.replace("_", "."));
} else {
return 2;
}
}
function _mime(where, value, name, nameReg) {
var mimeTypes = window.navigator.mimeTypes,
i;
for (i in mimeTypes) {
if (mimeTypes[i][where] == value) {
if (name !== undefined && nameReg.test(mimeTypes[i][name])) return !0;
else if (name === undefined) return !0;
}
}
return !1;
}
var browser360 = {
result: "Chrome",
details: {
Chrome: 5,
Chromium: 0,
_360SE: 0,
_360EE: 0
},
sorted: ["Chrome", "360SE", "360EE", "Chromium"],
check: function () {
var init = {
Chrome: 5,
Chromium: 0,
_360SE: 0,
_360EE: 0
};
var plugins = window.navigator.plugins;
var webstore = window.chrome.webstore;
var webstoreLen = Object.keys(webstore).length;
var pluginsLen = plugins.length;
if (
(window.clientInformation.languages || (init._360SE += 8),
/zh/i.test(navigator.language) && ((init._360SE += 3), (init._360EE += 3)),
window.clientInformation.languages)
) {
var lanLen = window.clientInformation.languages.length;
if (lanLen >= 3) {
(init.Chrome += 10), (init.Chromium += 6);
} else if (2 == lanLen) {
(init.Chrome += 3), (init.Chromium += 6), (init._360EE += 6);
} else if (1 == lanLen) {
(init.Chrome += 4), (init.Chromium += 4);
}
}
var pluginFrom,
maybe360 = 0;
for (var r in plugins) {
if ((pluginFrom = /^(.+) PDF Viewer$/.exec(plugins[r].name))) {
if ("Chrome" == pluginFrom[1]) {
(init.Chrome += 6), (init._360SE += 6), (maybe360 = 1);
} else if ("Chromium" == pluginFrom[1]) {
(init.Chromium += 10), (init._360EE += 6), (maybe360 = 1);
}
} else if ("np-mswmp.dll" == plugins[r].filename) {
(init._360SE += 20), (init._360EE += 20);
}
}
maybe360 || (init.Chromium += 9);
if (webstoreLen <= 1) {
init._360SE += 7;
} else {
init._360SE += 4;
init.Chromium += 3;
if (pluginsLen >= 30) {
(init._360EE += 7), (init._360SE += 7), (init.Chrome += 7);
} else if (pluginsLen < 30 && pluginsLen > 10) {
(init._360EE += 3), (init._360SE += 3), (init.Chrome += 3);
} else {
init.Chromium += 6;
}
}
var m = new Object();
(m.Chrome = init.Chrome),
(m.Chromium = init.Chromium),
(m["360SE"] = init._360SE),
(m["360EE"] = init._360EE);
var s = [];
for (var u in m) {
s.push([u, m[u]]);
}
s.sort(function (e, i) {
return i[1] - e[1];
});
this.sorted = s;
this.details = init;
this.result = s[0][0] || "";
return this.result.toLowerCase();
}
};
/**
* 獲取 Chromium 內(nèi)核瀏覽器類型
* @link http://www.adtchrome.com/js/help.js
* @link https://ext.chrome.#/webstore
* @link https://ext.se.#
* @return {String}
* 360ee 360極速瀏覽器
* 360se 360安全瀏覽器
* sougou 搜狗瀏覽器
* liebao 獵豹瀏覽器
* chrome 谷歌瀏覽器
* '' 無法判斷
*/
function _getChromiumType(version) {
if (window.scrollMaxX !== undefined) return "";
var doc = document;
var _track = "track" in doc.createElement("track"),
appVersion = window.navigator.appVersion,
external = window.external;
// 搜狗瀏覽器
if (external && "SEVersion" in external) return "搜狗瀏覽器";
// 獵豹瀏覽器
if (external && "LiebaoGetVersion" in external) return "獵豹瀏覽器";
if (/QQBrowser/.test(appVersion)) {
//qq瀏覽器
return "qq瀏覽器";
}
if (/Maxthon/.test(appVersion)) {
//遨游瀏覽器
return "遨游瀏覽器";
}
if (/TaoBrowser/.test(appVersion)) {
//淘寶瀏覽器
return "淘寶瀏覽器";
}
if (/BIDUBrowser/.test(appVersion)) {
//百度瀏覽器
return "baidu";
}
if (/UBrowser/.test(appVersion)) {
//UC瀏覽器
return "UC瀏覽器";
}
if (window.navigator.vendor && window.navigator.vendor.indexOf("Opera") == 0) {
//opera
return "歐朋瀏覽器";
}
// chrome
// if (window.clientInformation && window.clientInformation.languages && window.clientInformation.languages.length > 2) {
// return 'chrome';
// }
var p = navigator.platform.toLowerCase();
if (p.indexOf("mac") == 0 || p.indexOf("linux") == 0) {
return "谷歌瀏覽器";
}
if (parseInt(version) > MAX_360_CHROME_VERSION) {
return "谷歌瀏覽器";
}
// var webstoreKeysLength = window.chrome && window.chrome.webstore ? Object.keys(window.chrome.webstore).length : 0;
// if (_track) {
// // 360極速瀏覽器
// // 360安全瀏覽器
// return webstoreKeysLength > 1 ? '360ee' : '360se';
// }
return browser360.check();
}
var client = (function () {
var browser = {};
var ua = navigator.userAgent.toLowerCase();
var s;
if ((s = ua.match(/rv:([\d.]+)\) like gecko/))) {
browser.name = "ie";
browser["ie"] = s[1];
} else if ((s = ua.match(/msie ([\d.]+)/))) {
browser.name = "ie";
browser["ie"] = s[1];
} else if ((s = ua.match(/edge\/([\d.]+)/))) {
browser.name = "edge";
browser["edge"] = s[1];
} else if ((s = ua.match(/firefox\/([\d.]+)/))) {
browser.name = "firefox";
browser["firefox"] = s[1];
} else if ((s = ua.match(/chrome\/([\d.]+)/))) {
browser.name = "chrome";
browser["chrome"] = s[1];
var type = _getChromiumType(browser["chrome"]);
if (type) {
browser["chrome"] += "(" + type + ")";
}
} else if ((s = ua.match(/opera.([\d.]+)/))) {
browser.name = "opera";
browser["opera"] = s[1];
} else if ((s = ua.match(/version\/([\d.]+).*safari/))) {
browser.name = "safari";
browser["safari"] = s[1];
} else {
browser.name = "unknown";
browser["unknow"] = 0;
}
var system = {};
//detect platform
// var p = navigator.platform.toLowerCase();
if (ua.indexOf("iphone") > -1) {
system.name = "iphone";
system.iphone = getIOSVersion(ua);
} else if (ua.indexOf("ipod") > -1) {
system.name = "ipod";
system.ipod = getIOSVersion(ua);
} else if (ua.indexOf("ipad") > -1) {
system.name = "ipad";
system.ipad = getIOSVersion(ua);
} else if (ua.indexOf("nokia") > -1) {
system.name = "nokia";
system.nokia = true;
} else if (/android (\d+\.\d+)/.test(ua)) {
system.name = "android";
system.android = parseFloat(RegExp.$1);
} else if (ua.indexOf("win") > -1) {
system.name = "win";
if (/win(?:dows )?([^do]{2})\s?(\d+\.\d+)?/.test(ua)) {
if (RegExp["$1"] == "nt") {
switch (RegExp["$2"]) {
case "5.0":
system.win = "2000";
break;
case "5.1":
system.win = "XP";
break;
case "6.0":
system.win = "Vista";
break;
case "6.1":
system.win = "7";
break;
case "6.2":
system.win = "8";
break;
case "6.3":
system.win = "8.1";
break;
case "10.0":
system.win = "10";
break;
default:
system.win = "NT";
break;
}
} else if (RegExp["$1"] == "9x") {
system.win = "ME";
} else {
system.win = RegExp["$1"];
}
}
} else if (ua.indexOf("mac") > -1) {
system.name = "mac";
} else if (ua.indexOf("linux") > -1) {
system.name = "linux";
}
var str =
system.name +
(system[system.name] || "") +
"|" +
browser.name +
browser[browser.name];
var isMobile =
system.android ||
system.iphone ||
system.ios ||
system.ipad ||
system.ipod ||
system.nokia;
// console.log(str, "33333333")
that.sysType = system.name + system.win
that.browserType = str.split("|")[1]
return {
browser: browser,
system: system,
isMobile: isMobile,
string: str
};
})();
window[packageName]["browser"] = client;
return client.string
}
JS獲取瀏覽器信息
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
- 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來呐赡,“玉大人退客,你說我怎么就攤上這事×脆郑” “怎么了萌狂?”我有些...
- 文/不壞的土叔 我叫張陵,是天一觀的道長怀泊。 經(jīng)常有香客問我茫藏,道長,這世上最難降的妖魔是什么霹琼? 我笑而不...
- 正文 為了忘掉前任务傲,我火速辦了婚禮,結(jié)果婚禮上枣申,老公的妹妹穿的比我還像新娘售葡。我一直安慰自己,他們只是感情好忠藤,可當(dāng)我...
- 文/花漫 我一把揭開白布挟伙。 她就那樣靜靜地躺著,像睡著了一般模孩。 火紅的嫁衣襯著肌膚如雪尖阔。 梳的紋絲不亂的頭發(fā)上,一...
- 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼轴或!你這毒婦竟也來了昌跌?” 一聲冷哼從身側(cè)響起,我...
- 正文 獨(dú)居荒郊野嶺守林人離奇死亡萍诱,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
- 正文 年R本政府宣布饵蒂,位于F島的核電站声诸,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏退盯。R本人自食惡果不足惜彼乌,卻給世界環(huán)境...
- 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望渊迁。 院中可真熱鬧慰照,春花似錦、人聲如沸宫纬。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽漓骚。三九已至蝌衔,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間蝌蹂,已是汗流浹背噩斟。 一陣腳步聲響...
推薦閱讀更多精彩內(nèi)容
- javascript 組成部分????1.ECMAScript????????javascript的核心解釋器 ?...
- 獲取瀏覽器窗口信息 頁面視口大小,(只跟瀏覽器窗口有關(guān)嘲驾,不包括工具欄和滾動條)注:隨著窗口的大小而變化淌哟,保存頁面視...
- 正如標(biāo)題所說誊垢,這篇文章就是來告訴大家怎么去解決這個三個問題掉弛。 答案是使用JavaScript 中的navigato...