curiousL 2020-02-02
总结:
1.IE浏览器中有三种事件处理程序:HTML事件处理程序,DOM0级事件处理程序,IE事件处理程序。
2.IE浏览器中的HTML事件处理程序调用事件对象:直接调用event变量:
onclick=“alert(event.type);”
3.IE浏览器中的DOM0级事件处理程序通过调用window.event得到事件对象:
btn.onclick=()=>{ var event=window.event; }
4.IE浏览器中的IE事件处理程序通过传入事件参数得到事件对象:
btn.attachEvent("onclick",(event)=>{ alert(event.type);/click })//相信这里调用arguments[0]也同样可以获得event对象,未进行实验
5.IE浏览器中事件对象的5个属性:cancelBubble、returnValue、srcElement、type分别对应DOM中的stopPropagation()、preventDefault()、target、type
6.this的指向:IE事件处理程序指向window,HTML和DOM0级事件处理程序指向程序所加载在的元素。
在IE浏览器中:
HTML事件处理程序中的事件对象的指针保存在event变量中,可以直接调用。
DOM0级事件处理程序中的事件对象的指针保存在window对象下的event属性上。通过window.event进行调用。
IE事件处理程序中的事件对象的指针保存在event变量中,事件流传递到事件处理程序上时会将event变量作为事件处理程序的参数进行传入。
即:
function a(event){ alert(event.type);//"click" } var btn=document.getElementById("btn"); btn.attachEvent("onclick",a);
在IE浏览器中,事件对象同样拥有属性方法:
1.cancelBubble:布尔值。默认值false,设定为true会阻止事件冒泡(IE浏览器不支持事件捕获,类似于DOM的stopPropagation)
2.returnVlaue:布尔值。默认值true,设定为false会取消事件默认行为(类似于DOM的preventDefault)
3.srcElement:元素。指向事件的目标元素。
4.typr:字符串。事件类型。
IE浏览器中html事件处理程序,DOM0级事件处理程序中的this指向当前程序所添加到的元素,IE事件处理程序的this指向window。