//创建一个对象对浏览器进行能力检测,并且根据能力返回具体的注册事件方式
function createRegister(){
if(document.addEventListener){
//如果支持addEventlistener则直接返回
return function(ele,type,handle){
ele.addEventListener(type,handle)
}
}else if(document.attachEvent){
//如果支持attachEvent的话需要做特殊处理
//IE 6,7,8 只支持attachEvent,可是这个方法并不会传event对象给函数,而是存在window.event中所以必须手动传入
//attachEvent中的this的指向并非调用的对象,需要用call重新定向
return function(ele,type,handle){
ele.attachEvent("on" + type, function (e) {
var e=e||window.event
handle.call(ele,e)
});
}
}else{
//如果上面两种方法都不支持 就使用on
return function(ele,type,handle){
ele["on"+type]=handle
}
}
}
var myRegister=createRegister()
console.log(myRegister);
myRegister(box,"click",function(e){
console.log(this)
console.log(e)
alert('a')
})