收藏javascript好用函数2022年新整理

一些简单而又实用的底层功能函数收集。陆续更新中。


    // 共享onload 可以多个函数绑定 防止覆盖 随时可以添加任意多个
    function addLoadEvent(fn){
        let oldonload = window.onload;
        if (typeof window.onload != 'function'){
            window.onload = fn;
        }else{
            window.onload = function(){
                oldonload();
                fn();
            }
        }
    }

    // 在现有元素之后插入一个元素 DOM本身没有提供 所以手写一个
    function insertAfter(newElement,targetElement){
        let parent = targetElement.parentNode;
        if(parent.lastChild === targetElement){
            parent.appendChild(newElement);
        }else{
            parent.insertBefore(newElement,targetElement.nextSibling);
        }
    }


    // 异步数据请求ajax使用XMLHttpRequest的兼容写法
    function getHTTPObject(){
        if(typeof XMLHttpRequest == 'undefined'){
            XMLHttpRequest = function(){
                try {
                    return new ActiveXObject("Msxml2.XMLHTTP.6.0");
                } catch (error) {};
                try {
                    return new ActiveXObject("Msxml2.XMLHTTP.3.0");
                } catch (error) {};
                try {
                    return new ActiveXObject("Msxml2.XMLHTTP");
                } catch (error) {};
                return false;
            }
        }
        return new XMLHttpRequest();
    }

    // 上面函数的使用,实际中也可以打包成一个方法,当然也可以直接使用axios
    // 编写ajax函数获取接口数据
        let request = getHTTPObject();
        if(request){
            request.open('GET','jsapi.php',true);
            request.onreadystatechange = function(){
                if(request.readyState === 4){
                    let res = request.responseText;
                    // 对返回数据进行处理
                }
            };
            request.send(null);
        }else{
            alert('你的终端不支持XMLHttpRequest')
        }

    // 日期时间格式化方法,写入日期对象的原型,在vue中,放入main.js
Date.prototype.format = function(fmt) { 
  var o = { 
   "M+" : this.getMonth()+1,
   "d+" : this.getDate(),
   "h+" : this.getHours(), 
   "m+" : this.getMinutes(), 
   "s+" : this.getSeconds(),
   "q+" : Math.floor((this.getMonth()+3)/3),
   "S"  : this.getMilliseconds()
 }; 
 if(/(y+)/.test(fmt)) {
     fmt=fmt.replace(RegExp.$1, (this.getFullYear()+"").substr(4 - RegExp.$1.length)); 
 }
  for(var 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; 
};
// 使用方法如下 
let fmt = new Date().format("yyyy-MM-dd hh:mm:ss");

    // 简易日期格式化方法如下:
    fmtd(){
      var date = new Date();
      var Y = date.getFullYear() + "-";
      var M = (date.getMonth() + 1 < 10 ? "0" + (date.getMonth() + 1) : date.getMonth() + 1) + "-";
      var D = date.getDate();
      return Y + M + D ;
    },

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值