function _browser() {
var ieAX = window.ActiveXObject;
var ieMode = document.documentMode;
var ieVer = _getIeVersion() || ieMode || 0;
var isIe = ieAX || ieMode;
var chromiumType = _getChromiumType();
return {
isIE: (function () {
return !!ieVer;
})(),
ieVersion: (function () {
return ieVer;
})(),
isChrome: (function () {
return chromiumType === 'chrome';
})(),
is360se: (function () {
return chromiumType === '360se';
})(),
is360ee: (function () {
return chromiumType === '360ee';
})(),
isLiebao: (function () {
return chromiumType === 'liebao';
})(),
isSogou: (function () {
return chromiumType === 'sogou';
})(),
isQQ: (function () {
return chromiumType === 'qq';
})()
};
/**
* 检测 external 是否包含该字段
* @param reg 正则
* @param type 检测类型,0为键,1为值
* @returns {boolean}
* @private
*/
function _testExternal(reg, type) {
var external = window.external || {};
for (var i in external) {
if (reg.test(type ? external[i] : i)) {
return true;
}
}
return false;
}
/**
* 获取 Chromium 内核浏览器类型
* @link http://www.adtchrome.com/js/help.js
* @link https://ext.chrome.360.cn/webstore
* @link https://ext.se.360.cn
* @return {String}
* 360ee 360极速浏览器
* 360se 360安全浏览器
* sougou 搜狗浏览器
* liebao 猎豹浏览器
* chrome 谷歌浏览器
* '' 无法判断
* @version 1.0
* 2014年3月12日20:39:55
*/
function _getChromiumType() {
if (isIe || typeof window.scrollMaxX !== 'undefined') {
return '';
}
var _track = 'track' in document.createElement('track');
var webstoreKeysLength = window.chrome && window.chrome.webstore ? Object.keys(window.chrome.webstore).length : 0;
// 搜狗浏览器
if (_testExternal(/^sogou/i, 0)) {
return 'sogou';
}
// 猎豹浏览器
if (_testExternal(/^liebao/i, 0)) {
return 'liebao';
}
// chrome
if (window.clientInformation && window.clientInformation.languages && window.clientInformation.languages.length > 2) {
return 'chrome';
}
if (_track) {
// 360极速浏览器
// 360安全浏览器
return webstoreKeysLength > 1 ? '360ee' : '360se';
}
return '';
}
// 获得ie浏览器版本
function _getIeVersion() {
var v = 3,
p = document.createElement('p'),
all = p.getElementsByTagName('i');
while (
p.innerHTML = '<!--[if gt IE ' + (++v) + ']><i></i><![endif]-->',
all[0]);
return v > 4 ? v : 0;
}
}