JavaScript工具类(十一):浏览器、移动端类型

浏览器


浏览器类型方法封装

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地址(记得给星哦)

https://github.com/shiguang0116/sg-utils


系列文章

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用法实例


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值