@ssports_fe/ssutils
Version:
53 lines (51 loc) • 1.59 kB
JavaScript
/**
* 返回对应浏览器型号
* @return {boolean} browser 是否为某个浏览器型号
*/
const getBrowser = () => {
let UA = navigator.userAgent || '';
let isAndroid = (() => {
return !!UA.match(/Android/i);
})();
let isQQ = (() => {
return /(iPad|iPhone|iPod).*? (IPad)?QQ\/([\d.]+)/.test(UA) || /\bV1_AND_SQI?_([\d.]+)(.*? QQ\/([\d.]+))?/.test(UA);
})();
let isIOS = (() => {
return !!UA.match(/iPhone|iPad|iPod/i) || (/Macintosh/.test(navigator.userAgent) && 'ontouchend' in document);
})();
let isIphone = (() => {
return !!UA.match(/iPhone/i);
})();
let isIpad = (() => {
return !!UA.match(/iPad|iPod/i) || (/Macintosh/.test(navigator.userAgent) && 'ontouchend' in document);
})();
let isSafari = (() => {
return /iPhone|iPad|iPod\/([\w.]+).*(safari).*/i.test(UA);
})();
let isWx = (() => {
return !!UA.match(/micromessenger/i);
})();
let isWb = (() => {
return !!UA.match(/weibo/i);
})();
let isAndroidChrome = (() => {
return (UA.match(/Chrome\/([\d.]+)/) || UA.match(/CriOS\/([\d.]+)/)) && isAndroid && !isQQ;
})();
let isQZ = (() => {
return UA.indexOf('Qzone/') !== -1;
})();
let browser = {
isAndroid: isAndroid,
isIOS: isIOS,
isIphone: isIphone,
isIpad: isIpad,
isSafari: isSafari,
isQQ: isQQ,
isWb: isWb,
isWx: isWx,
isQZ: isQZ,
isAndroidChrome: isAndroidChrome
};
return browser;
};
module.exports = getBrowser;