浏览器
浏览器类型方法封装
u.browser = {}
var userAgent = window.navigator.userAgent // 获取浏览器的userAgent字符串
判断当前浏览类型
/**
* @description 判断当前浏览类型
* @return {String} ie7
* @return {String} ie8
* @return {String} ie9
* @return {String} ie10
* @return {String} ie11
* @return {String} edge
* @return {String} chrome
* @return {String} safari
* @return {String} firefox
* @return {String} opera
*/
u.browser.type = function() {
if (u.browser.isIE()) {
var reIE = new RegExp('MSIE (\\d+\\.\\d+);')
reIE.test(userAgent)
var fIEVersion = parseFloat(RegExp['$1'])
if (fIEVersion === 7) return 'ie7'
if (fIEVersion === 8) return 'ie8'
if (fIEVersion === 9) return 'ie9'
if (fIEVersion === 10) return 'ie10'
if (fIEVersion === 11) return 'ie11'
else return false // IE版本过低
}
if (u.browser.isFirefox()) return 'firefox'
if (u.browser.isOpera()) return 'opera'
if (u.browser.isSafari()) return 'safari'
if (u.browser.isChrome()) return 'chrome'
if (u.browser.isEdge()) return 'edge'
}
判断是否是IE浏览器
/**
* @description 判断是否是IE浏览器
*/
u.browser.isIE = function() {
return userAgent.indexOf('compatible') > -1 && userAgent.indexOf('MSIE') > -1 && !u.browser.isOpera()
}
判断是否IE的Edge浏览器
/**
* @description 判断是否IE的Edge浏览器
*/
u.browser.isEdge = function() {
return userAgent.indexOf('Windows NT 6.1; Trident/7.0;') > -1 && !u.browser.isIE()
}
判断是否Safari浏览器
/**
* @description 判断是否Safari浏览器
*/
u.browser.isSafari = function() {
return userAgent.indexOf('Safari') > -1 && userAgent.indexOf('Chrome') === -1
}
判断是否是Chrome浏览器
/**
* @description 判断是否是Chrome浏览器
*/
u.browser.isChrome = function() {
return userAgent.indexOf('Chrome') > -1 && userAgent.indexOf('Safari') > -1
}
判断是否Firefox浏览器
/**
*@description 判断是否Firefox浏览器
*/
u.browser.isFirefox = function() {
return userAgent.indexOf('Firefox') > -1
}
判断是否Opera浏览器
/**
* @description 判断是否Opera浏览器
*/
u.browser.isOpera = function() {
return userAgent.indexOf('Opera') > -1
}
判断是否是微信浏览器
/**
* @description 判断是否是微信浏览器
*/
u.browser.isWechat = function() {
var ua = userAgent.toLowerCase()
if (ua.match(/MicroMessenger/i) === 'micromessenger') return true
else return false
}
判断是否是 android
/**
* @description 判断是否是 android
*/
u.browser.isAndroid = function() {
return (/android/gi).test(navigator.appVersion)
}
判断是否是 ios
/**
* @description 判断是否是 ios
*/
u.browser.isIOS = function() {
if (userAgent.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/)) return true
else return false
}
判断是否是移动端
/**
*@description 判断是否是移动端
*/
u.browser.isMobile = function() {
if (userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i)) {
return true
}
else return false
}
根据手机设备调取相机
/**
* @description 根据手机设备调取相机
* <input type="file" capture="camera" accept="image/*" multiple="multiple">
* Android:加上 capture 属性,可以同时调用相册和相机,否则只能调用相册;
* IOS: 加上 capture 属性,只能调相机,反之可以同时调用相册和相机。二者在 capture="camera" 上是相反的
*/
u.browser.callCamera = function() {
if (u.browser.isIOS()) {
var file = window.document.querySelectorAll('input[capture=camera]')
for (var i = 0; i < file.length; i++) {
file[i].removeAttribute('capture')
}
}
}
下载
npm i sg-utils -S
GitHub地址(记得给星哦)
系列文章
JavaScript工具类(一):util.js创建及上传
JavaScript工具类(二):cookie缓存
JavaScript工具类(三):localStorage本地储存
JavaScript工具类(四):数据类型
JavaScript工具类(五):string字符串
JavaScript工具类(六):number数字
JavaScript工具类(七):array数组
JavaScript工具类(八):object对象
JavaScript工具类(九):date日期
JavaScript工具类(十):base64编码、解码
JavaScript工具类(十一):浏览器、移动端类型
JavaScript工具类(十二):validate表单验证
JavaScript工具类(十三):url路径处理
JavaScript工具类(十四):json数据格式
JavaScript工具类:util.js用法实例