• JavaScript常用工具函数汇总(一)


    提示:前端查漏补缺,仅代表个人观点


    提示:以下是本篇文章正文内容,下面案例可供参考

    一、为元素添加on方法

    Element.prototype.on = Element.prototype.addEventListener;
    NodeList.prototype.on = function (event, fn) {[]['forEach'].call(this, function (el) {
            el.on(event, fn);
        });
        return this;
    };
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    二、转义html标签

    function HtmlEncode(text) {
      return text
        .replace(/&/g, "&")
        .replace(/\"/g, '"')
        .replace(/</g, "<")
        .replace(/>/g, ">");
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    三、HTML标签转义

    // @param {Array.} templateData 字符串类型的tokens
    // @param {…} …vals 表达式占位符的运算结果tokens

    function SaferHTML(templateData) {
      var s = templateData[0];
      for (var i = 1; i < arguments.length; i++) {
        var arg = String(arguments[i]);
        // Escape special characters in the substitution.
        s += arg
          .replace(/&/g, "&")
          .replace(/</g, "<")
          .replace(/>/g, ">");
        // Don't escape special characters in the template.
        s += templateData[i];
      }
      return s;
    }
    // 调用
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    四、跨浏览器绑定事件

    function addEventSamp(obj, evt, fn) {
      if (!oTarget) {
        return;
      }
      if (obj.addEventListener) {
        obj.addEventListener(evt, fn, false);
      } else if (obj.attachEvent) {
        obj.attachEvent("on" + evt, fn);
      } else {
        oTarget["on" + sEvtType] = fn;
      }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    五、加入收藏夹

    将网站加入收藏夹

    function addFavorite(sURL, sTitle) {
      try {
        window.external.addFavorite(sURL, sTitle);
      } catch (e) {
        try {
          window.sidebar.addPanel(sTitle, sURL, "");
        } catch (e) {
          alert("加入收藏失败,请使用Ctrl+D进行添加");
        }
      }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    六、返回顶部的通用方法

    当页面滚动到下方,想返回页面顶部

    function backTop(btnId) {
      var btn = document.getElementById(btnId);
      var d = document.documentElement;
      var b = document.body;
      window.onscroll = set;
      btn.style.display = "none";
      btn.onclick = function() {
        btn.style.display = "none";
        window.onscroll = null;
        this.timer = setInterval(function() {
          d.scrollTop -= Math.ceil((d.scrollTop + b.scrollTop) * 0.1);
          b.scrollTop -= Math.ceil((d.scrollTop + b.scrollTop) * 0.1);
          if (d.scrollTop + b.scrollTop == 0)
            clearInterval(btn.timer, (window.onscroll = set));
        }, 10);
      };
      function set() {
        btn.style.display = d.scrollTop + b.scrollTop > 100 ? "block" : "none";
      }
    }
    //调用
    backTop("goTop");
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    七、版本对比

    function compareVersion(v1, v2) {
      v1 = v1.split(".");
      v2 = v2.split(".");
      var len = Math.max(v1.length, v2.length);
      while (v1.length < len) {
        v1.push("0");
      }
      while (v2.length < len) {
        v2.push("0");
      }
      for (var i = 0; i < len; i++) {
        var num1 = parseInt(v1[i]);
        var num2 = parseInt(v2[i]);
        if (num1 > num2) {
          return 1;
        } else if (num1 < num2) {
          return -1;
        }
      }
      return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    八、压缩CSS样式代码

    function compressCss(s) {
      //压缩代码
      s = s.replace(/\/\*(.|\n)*?\*\//g, ""); //删除注释
      s = s.replace(/\s*([\{\}\:\;\,])\s*/g, "$1");
      s = s.replace(/\,[\s\.\#\d]*\{/g, "{"); //容错处理
      s = s.replace(/;\s*;/g, ";"); //清除连续分号
      s = s.match(/^\s*(\S+(\s+\S+)*)\s*$/); //去掉首尾空白
      return s == null ? "" : s[1];
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
  • 相关阅读:
    【java_wxid项目】【第二章】【Spring Cloud Alibaba Nacos集成】
    唯众实训授课助手 实训课堂好帮手
    Java多线程(一)
    2024年水利工程与交通运输国际学术会议(ICWCET 2024)
    域名个人信息备案的能用 websocket 吗
    软件工程综合实践课程第一周作业(面向对象编程实验与继承与多态实验)
    C语言,求两个数的二进制表达中,有多少个位数不同
    【TypeScript】介绍和环境搭建的详细步骤
    【Linux】进程数据结构
    【JSP/Servlet】基于WEB的通讯录系统
  • 原文地址:https://blog.csdn.net/weixin_43523043/article/details/126968149