JavaScript兼容

// 属性的兼容,使用||解决
// 方法的兼容,使用if判断解决

  1. event事件获取兼容
//eve传入参数
var e = eve || window.event;

注意:event需要逐层传递,不要疏忽外部的function

  1. 非行内样式兼容
function getStyle(ele,attr){
    if(ele.currentStyle){
          return ele.currentStyle[attr];                  //IE
    }else{
          return getComputedStyle(ele,false)[attr];       //非IE
    }
}
alert(getStyle(obox,"background-color"));
console.log(getStyle(obox2,"background-color"));
  1. 获取按键ASCII码
var eve = eve || window.event
var keyC = eve.keyCode || eve.which

  1. 添加事件监听(IE兼容)
// 封装成函数
function addEvent(ele,type,callback){
        if(ele.addEventListener){
            ele.addEventListener(type,callback)
        }else if(ele.attachEvent){
            ele.attachEvent("on"+type,callback)
        }else{
            ele["on"+type] = callback;
        }
    }

function removeEvent(ele,type,callback){
        if(ele.removeEventListener){
            ele.removeEventListener(type,callback)
        }else if(ele.detachEvent){
            ele.detachEvent("on"+type,callback)
        }else{
            ele["on"+type] = null;
        }
    }
  //removeEvent(obox,"click",fn1)
// 封装成对象
    var myEvent = {
        add:function(ele,type,callback){
            if(ele.addEventListener){
                ele.addEventListener(type,callback)
            }else if(ele.attachEvent){
                ele.attachEvent("on"+type,callback)
            }else{
                ele["on"+type] = callback;
            }
        },
        remove:function(ele,type,callback){
            if(ele.removeEventListener){
                ele.removeEventListener(type,callback)
            }else if(ele.detachEvent){
                ele.detachEvent("on"+type,callback)
            }else{
                ele["on"+type] = null;
            }
        }
    }
  1. 阻止事件冒泡兼容
function stopBubble(e){
    if(e.stopPropagation){
        e.stopPropagation()
    }else{
        e.cancelBubble = true;//IE
    }
}
  1. 目标元素target兼容
target = e.target || e.srcElement;
  1. 阻止浏览器默认行为兼容
function(e){
    if(e.preventDefault){
        e.preventDefault();
     }else{
        window.event.returnValue = false;
     }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第3章 基本概念 3.1 语法 3.2 关键字和保留字 3.3 变量 3.4 数据类型 5种简单数据类型:Unde...
    RickCole阅读 5,161评论 0 21
  • 概要 64学时 3.5学分 章节安排 电子商务网站概况 HTML5+CSS3 JavaScript Node 电子...
    阿啊阿吖丁阅读 9,298评论 0 3
  • 第1章 认识JS JavaScript能做什么?1.增强页面动态效果(如:下拉菜单、图片轮播、信息滚动等)2.实现...
    mo默22阅读 1,326评论 0 5
  • 一、JS前言 (1)认识JS 也许你已经了解HTML标记(也称为结构),知道了CSS样式(也称为表示),会使用HT...
    凛0_0阅读 2,798评论 0 8
  • 收集于网络,特此整理。 多看看API,总是没坏处~ 一、节点 1.1 节点属性 Node.nodeName //...
    前端程序猿阿旭阅读 5,420评论 1 1