zoukankan      html  css  js  c++  java
  • js的兼容技巧

    javascript原生代码中经常会遇到各式各样浏览器不兼容的问题,浏览器真是倔强,解决浏览器的兼容是前端猿们的一大难题

    为了避免在工作中遇到这些简单的问题。节约开发时间,在这里总结一些常用的浏览器兼容原生js的一些问题

    1.获取事件对象

    e=e||window.event;

    2.获取键码的通用代码

    var keyCode = e.keyCode || e.which || e.charCode

     3.获取页面滚动距离

    var top = document.body.scrollTop | document.documentElement.scrollTop; 
    

    4.ajax获取xmlhttp对象

    if(window.XMLHttpRequest) 
    { 
    var oAjax=new XMLHttpRequest();//标准浏览器 
    } 
    else 
    { 
    var oAjax=new ActiveXObject("Microsoft.XMLHTTP");//IE低版本 
    }
    

    6.取消默认事件

    document.addEventListener('contextmenu',function(ev){ 
    ev.preventDefault(); 
    })) 
    document.oncontextmenu = function(){ 
    return false; 
    } 
    

    7.事件绑定

    a.addEventListener("click",function(){
        //其他主流浏览器的事件绑定
    }); 
    a.attachEvent("onclick",function(){
    //Ie浏览器的事件绑定
    });

    8.获取事件对象目标

    getTarget: function(event){
      return event.target || event.srcElement;
     }
    

    9.阻止事件冒泡的方法

    stopPropagation: function(event){
      if (event.stopPropagation){
       event.stopPropagation();
      } else {
       event.cancelBubble = true;
      }
     }
    

    10.访问剪贴板中的数据

    getClipboardText: function(event){
      var clipboardData = (event.clipboardData || window.clipboardData);
      return clipboardData.getData("text");
     }
    

    11.设置剪贴板中的数据

    setClipboardText: function(event, value){
      if (event.clipboardData){
       return event.clipboardData.setData("text/plain", value);
      } else if (window.clipboardData){
       return window.clipboardData.setData("text", value);
      }
     }
    

    12.对象的深度复制

    function deepClone(obj){
                   var o = obj instanceof Array ? [] : {};
                    for(var k in obj)
                        o[k] = typeof obj[k] === Object ? deepClone(obj[k]) : obj[k];
                        return o;
             }
    

      

    未完待续。。。。。。。。。。

  • 相关阅读:
    判断JS数据类型的四种方法
    JavaScript正则表达式精简
    virtio介绍
    DPDK与SRIOV应用场景及性能对比
    KVM和Xen的区别
    理解 JavaScript 闭包
    JS数组常用操作方法总结
    JavaScript中的 NaN 与 isNaN
    如何在Unity中复制多个组件并粘贴到另一个GameObject上
    Unity Umotion 导入动作发生漂移的解决办法
  • 原文地址:https://www.cnblogs.com/dangou/p/5531730.html
Copyright © 2011-2022 走看看