DOM中的事件对象和IE事件对象

DOM中的事件对象 IE事件对象
属性/方法 类型 读/写 说明 属性/方法 类型 读/写 说明
 bubles Boolean 只读  表明事件是否冒泡  cancleBubble Boolean 读/写

默认为false,但将其设置为true就可以取消事件冒泡

(与DOM中的stopPropagation()方法的作用相同)

 cancelable Boolean  只读  表明是否可以取消事件的默认行为   returnValue   Boolean  读/写

 默认为true,但将其设置为false就可以取消事件的默认行为

(与DOM的preventDefault()方法的作用相同)

currentTarget  Element  只读   其事件处理程序当前正在处理事件的那个元素  scrElement Element  只读   事件的目标(与DOM中的target属性相同)
 defaultPrevented Boolean  只读

为true表示已经调用了preventDefault()

(DOM3级事件新增)是否取消默认事件 

 type  String  只读  被触发的事件类型
detail Integer 只读

与事件相关的的细节信息

       
eventPhase Integer 只读

调用事件处理程序的阶段:1表示捕获阶段,

2表示‘处于目标’,3表示冒泡阶段

       
preventDefault() Function 只读 

取消事件的默认行为,如果cancelable为true

则可以使用这个方法

       
stopImmediatePropagation() Function 只读

取消默认事件的进一步捕获或冒泡,

同时阻止任何事件处理程序被调用(DOM3级事件中新增)

       
 stopPropgation() Function  只读 

取消事件进一步捕获或冒泡。如果bubbles为

true,则可以使用这个方法 

       
 target  Element 只读   事件的目标        
 trusted Boolean  只读 

为true表示是浏览器生成的

为false表示是由开发人员通过js创建的 

       
type String 只读

被触发的事件类型

       
view AbstractView 只读

与事件关联的抽象视图

等同于发生事件的window对象

       

兼容DOM的浏览器会将一个Event对象传入到事件处理程序中,无论事件处理程序使用什么方法(DOM0或DOM2),都会传入Event对象

IE中的事件对象

访问IE中的event对象和DOM不一样,取决于制定事件处理程序的方法,在试用Dom0级方法添加事件处理程序时,event对象作为window对象的一个属性存在

DOM0级方法

obj.onclick = function(){
        alert(window.event.srcElement.parentNode);
        window.event.returnValue = false;
        return false;
    }

如果是用attachEvent添加

obj.attachEvent('onclick',function(event){
        alert(event.type);
    });
oDiv.attachEvent('onclick',function(){
        document.body.innerHTML += this; //attachEvent内部this指向window
    });

因为在IE中事件处理程序的作用域是根据制定他的方式确定的,所以不能认为this会始终等于事件目标故而使用Event.srcElement 事件源元素

 取消事件的默认行为

var link = document.getElementById('a1');
    link.onclick = function(event){
        alert(window.event.type);
        window.event.returnValue = false;
    }

取消事件冒泡

var link = document.getElementById('a1');
    link.onclick = function(event){
        alert(window.event.type);
        window.event.cancelBubble = true;
    }
原文地址:https://www.cnblogs.com/jokes/p/9641766.html