UNPKG

js-wrench

Version:

JS函数库

59 lines (56 loc) 1.74 kB
type browserType = | 'IE7' | 'IE8' | 'IE9' | 'IE10' | 'IE11' | 'Edge' | 'FireFox' | 'Opera' | 'Chrome' | 'Safari' | null //不对低版本做校验 /** * @description 获取浏览器类型 * * @return {*} {browserType} | 'IE7'| 'IE8'| 'IE9'| 'IE10'| 'IE11'| 'Edge'| 'FireFox'| 'Opera'| 'Chrome'| 'Safari'| null * @example getBrowserType() => 'Chrome' */ const getBrowserType = (): browserType => { let types: browserType = null let userAgentInfo: string = navigator.userAgent let isOpera: boolean = userAgentInfo.indexOf('Opera') > -1 let isIE: boolean = userAgentInfo.indexOf('compatible') > -1 && userAgentInfo.indexOf('MSIE') > -1 && !isOpera let isIE11: boolean = userAgentInfo.indexOf('Trident') > -1 && userAgentInfo.indexOf('rv:11.0') > -1 let isEdge: boolean = userAgentInfo.indexOf('Edge') > -1 && !isIE let isFireFox: boolean = userAgentInfo.indexOf('Firefox') > -1 let isSafari: boolean = userAgentInfo.indexOf('Safari') > -1 && userAgentInfo.indexOf('Chrome') === -1 let isChrome: boolean = userAgentInfo.indexOf('Chrome') > -1 && userAgentInfo.indexOf('Safari') > -1 if (isIE) { let regIE: RegExp = new RegExp('MSIE (\\d+\\.\\d+);') regIE.test(userAgentInfo) let version: number = parseFloat(RegExp['$1']) if (version == 7) types = 'IE7' else if (version == 8) types = 'IE8' else if (version == 9) types = 'IE9' else if (version == 10) types = 'IE10' else types = null } if (isIE11) types = 'IE11' if (isEdge) types = 'Edge' if (isFireFox) types = 'FireFox' if (isOpera) types = 'Opera' if (isSafari) types = 'Safari' if (isChrome) types = 'Chrome' return types } export default getBrowserType