UNPKG

@planjs/utils

Version:

🔧 Common tools collection

154 lines (137 loc) 3.66 kB
import _typeof from "@babel/runtime/helpers/esm/typeof"; var defaultUA = isBrowser() ? window.navigator.userAgent : ''; /** * 检查是否浏览器环境 * @category Is */ export function isBrowser() { return (typeof window === "undefined" ? "undefined" : _typeof(window)) === 'object' && window.window === window; } /** * 检查是否node环境 * @category Is */ export function isNode() { return typeof process !== 'undefined' && process.release.name === 'node'; } /** * 是否为safari浏览器 * @category Is */ export function isSafari() { var ua = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultUA; return !ua.match(/Chrome/gi) && !!ua.match(/Safari/gi); } /** * 是否为chrome浏览器 * @category Is */ export function isChrome() { var ua = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultUA; return !!ua.match(/Chrome/gi); } /** * 是否为firefox浏览器 * @category Is */ export function isFirefox() { var ua = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultUA; return !!ua.match(/Firefox/gi); } /** * 是否为opera浏览器 * @category Is */ export function isOpera() { var ua = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultUA; return !!ua.match(/Opera/gi); } /** * 是否为IE浏览器 * @category Is */ export function isIE() { var ua = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultUA; return /msie|trident/.test(ua.toLowerCase()); } /** * 是否IE8 * @param ua * @category Is */ export function isIE8() { var ua = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultUA; return ua.toLowerCase().indexOf('msie 8.0') > 0; } /** * 是否IE9 * @param ua * @category Is */ export function isIE9() { var ua = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultUA; return ua.toLowerCase().indexOf('msie 9.0') > 0; } /** * * @param ua * @category Is */ export function isEDGE() { var ua = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultUA; return ua.toLowerCase().indexOf('edge/') > 0; } /** * 是否为IOS系统 * @category Is */ export function isIOS() { var ua = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultUA; return !!ua.match(/iphone|ipad|iPod/gi); } /** * 是否为Android系统 * @category Is */ export function isAndroid() { var ua = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultUA; return !!ua.match(/android/gi); } /** * 是否是微信浏览器 * @param ua * @category Is */ export function isWXBrowser() { var ua = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultUA; return !!ua.match(/micromessenger/gi); } /** * 判断是否企业微信浏览器 * @param ua * @category Is */ export function isWWBrowser() { var ua = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultUA; return !!ua.match(/wxwork/gi) && isWXBrowser(ua); } /** * 判断是否微信小程序内的webview * @param ua * https://developers.weixin.qq.com/miniprogram/dev/component/web-view.html * @category Is */ export function isWXMiniProgramWebView() { var ua = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultUA; return !!ua.match(/miniProgram/gi); } /** * 判断是否暗黑模式 * @category Is */ export function isPrefersDarkMode() { if (!isBrowser()) { throw new Error('Can only be used on the node side.'); } return window.matchMedia('(prefers-color-scheme: dark)'); }