整理一些常用的方法

7 篇文章 0 订阅

动态加载一个 css 文件

function cssLoader(url) {
    let doc = document;
    let link = doc.createElement("link");
    link.setAttribute("rel", "stylesheet");
    link.setAttribute("type", "text/css");
    link.setAttribute("href", url);

    let heads = doc.getElementsByTagName("head");
    if (heads.length) {
        heads[0].appendChild(link);
    } else {
        doc.documentElement.appendChild(link);
    }
}

动态加载一个js文件

export const loadJs = (url) => {
    return new Promise((resolve, reject) => {
        const script = document.createElement('script')
        script.type = 'text/javascript'
        script.async = true
        script.src = url
        if (script.readyState) {
            script.onreadystatechange = () => {
                if (script.readyState === 'loaded' || script.readyState === 'complete') {
                    script.onreadystatechange = null
                    resolve()
                }
            }
        } else {
            script.onload = resolve
        }
        document.body.appendChild(script)
    })
}

判断是否是微信、QQ、IOS、微博

/**
 * 浏览器判断工具
 */

// 可能有些APP ua 是后期会做更新的,因此这里不采用抽出navigator.userAgent的做法

var browser = {
    isAndroid: function() {
        return navigator.userAgent.match(/Android/i) ? true : false;
    },
    isMobileQQ: function() {
        var ua = navigator.userAgent;
        return /(iPad|iPhone|iPod).*? (IPad)?QQ\/([\d\.]+)/.test(ua) || /\bV1_AND_SQI?_([\d\.]+)(.*? QQ\/([\d\.]+))?/.test(ua);
    },
    isIOS: function() {
        return navigator.userAgent.match(/iPhone|iPad|iPod/i) ? true : false;
    },
    isWx: function() {
        return navigator.userAgent.match(/micromessenger/i) ? true : false;
    },
    isChrome: function(){
        return (navigator.userAgent.match(/Chrome\/([\d.]+)/) || navigator.userAgent.match(/CriOS\/([\d.]+)/)) ? true : false;
    },
    isBaidu: function(){
        return navigator.userAgent.match(/baidubrowser/i) ? true : false;
    },
    isUC: function(){
        return navigator.userAgent.match(/UCBrowser/i) ? true : false;
    },
    isSafari: function(){
        return navigator.userAgent.match(/safari/i) ? true : false;
    },
    isQQBrowser: function(){
        return navigator.userAgent.match(/MQQBrowser/i) ? true : false;
    },
    isWeibo: function(){
        return navigator.userAgent.match(/weibo/i) ? true : false;
    },
    isAlipay: function(){
        return navigator.userAgent.match(/Alipay/i) ? true : false;
    }
};

module.exports = browser;

获取url参数

export const _getQueryString = (name) => {
  let reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)', 'i')
  let result = window.location.search.substr(1).match(reg)
  if (result != null) return unescape(result[2])
  return null
}

检验手机号

export const _checkPhone = (val, code = '') => {
  if (code === 86) {
    const reg = /^1[0-9]{10,12}$/
    return !(val && val.match(reg))
  } else {
    const reg = /^[0-9]{7,20}$/
    return !(val && val.match(reg))
  }
}

获取一个元素的任意 CSS 属性值

function getStyle(element, attr) {
        if(element.currentStyle) {
                return element.currentStyle[attr];
        } else {
                return getComputedStyle(element, false)[attr];
        }
}

格式化时间


export const dateFormat = (fmt, time) => {
    let date = typeof time === 'undefined' ? new Date() : new Date(time)

    const o = {
        'M+': date.getMonth() + 1, // 月份
        'd+': date.getDate(), // 日
        'h+': date.getHours(), // 小时
        'm+': date.getMinutes(), // 分
        's+': date.getSeconds(), // 秒
        'q+': Math.floor((date.getMonth() + 3) / 3), // 季度
        'S': date.getMilliseconds() // 毫秒
    }

    if (/(y+)/.test(fmt)) {
        fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length))
    }
    for (let k in o) {
        if (new RegExp(`(${k})`).test(fmt)) {
            fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? (o[k]) : (('00' + o[k]).substr(('' + o[k]).length)))
        }
    }
    return fmt
}

url获取

export const urlArgs = () => {
    var args = {};
    var query = location.search.substring(1);
    var pairs = query.split("&");
    for (var i = 0; i < pairs.length; i++) {
        var pos = pairs[i].indexOf("=");
        if (pos == -1) continue;
        var name = pairs[i].substring(0, pos);
        var value = pairs[i].substring(pos + 1);
        value = decodeURIComponent(value);
        args[name] = value;
    }
    return args;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值