zoukankan      html  css  js  c++  java
  • js中兼容问题的解决

    兼容问题

    • 获取事件对象
    • 阻止事件冒泡
    • 监听式绑定
    • 取消事件绑定
    • 获取事件源
    • 阻止默认事件
    • 获取非行内样式
    • 获取键盘按键

     

    获取事件对象的兼容

    1 var obox = document.querSelector(".box");
    2 
    3 obox.onclick = function(eve) {
    4            var e = eve || window.event   //ie只支持window.event
    5            console.log(e);
    6         }

    阻止事件冒泡的兼容

    e.stopPropagation
    e.cancelBubble = true
    1 function stopBubble(e){    //传入事件对象
    2         if(e.stopPropagation){
    3             e.stopPropagation();
    4         }else{
    5             e.cancelBubble = true;   //如果ie,则使用e.cancleBubble
    6         }
    7     }

     监听式绑定的兼容

    ele.addEventListener("click",function(){}) 
    ele.attachEvent("onclick",function(){})
    1 function addEvent(ele,type,cb){   //元素对象  事件类型  事件函数
    2         if(ele.addEventListener){    
    3             ele.addEventListener(type,cb)    //ie不支持
    4         }else if(ele.attachEvent){
    5             ele.attachEvent("on"+type,cb)   //仅ie9支持
    6         }else{
    7             ele["on"+type] = cb;   //都不支持,使用赋值式绑定
    8         } 
    9     }

    取消绑定事件的兼容

    ele.removeEventListener("click",function(){})
    ele.detachEvent("onclick",function(){})
    1 function removeEvent(ele,type,cb){   //元素对象  事件类型  事件函数
    2         if(ele.removeEventListener){    
    3             ele.removeEventListener(type,cb)   //ie不支持
    4         }else if(ele.detachEvent){
    5             ele.detachEvent("on"+type,cb)   //ie支持
    6         }else{
    7             ele["on"+type] = null;   //都不支持,采用删除赋值式事件绑定
    8         }
    9     }

     获取事件源的兼容

    var t = e.target || e.srcElement;

     阻止默认事件的兼容

    1.document.oncontextmenu = function(){
        return false; //没有兼容的阻止默认事件(位置不对的话有阻止程序的隐患)
    } //右键点击

    2.e.returnValue = false; //ie
    3.e.preventDefault(); //正常浏览器

    if(e.preventDefault){
            e.preventDefault();
        }else{
            e.returnValue = false;
        }

    获取非行内样式的兼容

    getComputedStyle(元素,false)[属性名]
    元素.currentStyle[属性名]

    获取键盘按键的兼容

     var e = e.keyCode || e.which

     

  • 相关阅读:
    mysql优化——show processlist命令详解
    Nginx常见错误
    nginx应用总结(1)--基础认识和应用配置
    mac键盘在ubuntu下开启fn功能按键
    字符串逆序输出--递归
    getchar返回int类型
    c语言中字符串跨行书写的问题
    ascii
    c语言中不允许在函数外部给全局变量赋值
    CF和OF的区别
  • 原文地址:https://www.cnblogs.com/yad123/p/11419883.html
Copyright © 2011-2022 走看看