美文网首页浏端兼容
浏端兼容-v1.0.0

浏端兼容-v1.0.0

作者: 一点金光 | 来源:发表于2019-07-28 01:38 被阅读0次
    title: 浏端兼容
    date: 2018-06-09 16:29:00
    updated: 2018-06-10 12:00:00
    categories:
    - 网页开发
    - 开发应用
    tags:
    - nodejs
    

    关于如何解决浏览器脚本兼容的一些技术/经验分享

    现在直接通过browserlist/browerfy/babel等直接进行兼容就行了,不再一一设置兼容问题。

    事件监听。

    let EventCompact = {
            //绑定
        on: function(ele, fn, str) {
            //火狐谷歌IE9+支持addEventListener  
            if(ele.addEventListener) { 
                ele.addEventListener(str, fn);
            } 
            //IE678支持attachEvent
            else if(ele.attachEvent) { 
                ele.attachEvent("on" + str, fn);
            } 
            //在addEventListener和attachEvent都不存在的情况下,用此代码  
            else {
                ele["on" + str] = fn;
            }
        },
            //移除
        off: function(ele, fn, str) {
            if(ele.removeEventListener) {
                ele.removeEventListener(str, fn);
            } else if(ele.detachEvent) {
                ele.detachEvent("on" + str, fn);
            } else {
                ele["on" + str] = null;
            }
        }
    }
    

    事件对象

    function fixEvent(e) {
      var evt = (typeof e == "undefined") ? window.event : e;
      return evt;
    }
    

    来源元素

     function srcElement(e) {
      if (typeof e == "undefined") e = window.event;
      var src = document.all ? e.srcElement : e.target;
    
      return src;
    }
    

    鼠标坐标

    function x(e) { //当前鼠标X坐标
      return Browser.isIE ? event.x + document.documentElement.scrollLeft - 2 : e.pageX;
    }
    
    function y (e) { //当前鼠标Y坐标
      return Browser.isIE ? event.y + document.documentElement.scrollTop - 2 : e.pageY;
    }
    

    缓存接口

    //cookie get/set/remove
    document.getCookie = function(sName) {
      // cookies are separated by semicolons
      var aCookie = document.cookie.split("; ");
      for (var i = 0; i < aCookie.length; i++) {
        // a name/value pair (a crumb) is separated by an equal sign
        var aCrumb = aCookie[i].split("=");
        if (sName == aCrumb[0])
          return decodeURIComponent(aCrumb[1]);
      }
    
      // a cookie with the requested name does not exist
      return null;
    }
    
    document.setCookie = function(sName, sValue, sExpires) {
      var sCookie = sName + "=" + encodeURIComponent(sValue);
      if (sExpires != null) {
        sCookie += "; expires=" + sExpires;
      }
    
      document.cookie = sCookie;
    }
    
    document.removeCookie = function(sName, sValue) {
      document.cookie = sName + "=; expires=Fri, 31 Dec 1999 23:59:59 GMT;";
    }
    

    相关文章

      网友评论

        本文标题:浏端兼容-v1.0.0

        本文链接:https://www.haomeiwen.com/subject/kiayrctx.html