08年年初的一篇blog,转到这个博客上,想想当年跨浏览器真是一座山:
前几天看dojo的文档,其中多次提到DOM2事件模型,以前学习这部分的内容,主要愤慨于IE的不兼容性了,现在对于DOM2事件模型的概念又有些模糊,所以翻出了JS权威指南(V4)又复习了一下,简单作一小结。
JS权威指南中将JS事件模型分为四种
1、原始事件模型:属性事件处理模式
2、标准事件模型:DOM2对其作了标准化
3、IE事件模型(IE5.5/IE6)
4、 Netscape事件模型
原始事件模型
也就是基本事件处理,其实我们大多数人使用的JS事件处理模式都是这种代码方式。
其事件类型:分为"输入事件(如onclicki)"和"语义事件(如onsubmit)"
事件程序的注册可以以下几种方式:
1、JS代码作为HTML性质值
document.f1.b1.οnclick=function()
{
alert('thanks');
};
function plead()
{
window.status="Please Press Me!";
}
document.f1.bi.οnmοuseοver=plead;
document.myfrom.onsubmit();
help
JS函数运行在词法作用域中,也就是定义他们的作用域中,因此作为HTML性质的JS事件处理程序,作用域链比较特殊,其头是调用对象(既这段JS代码),下一个对象是触发事件的对象既event.currentTarget,其后就是其包容层元素。整个作用域链的精确构成依赖于具体实现。
var e=document.createEvent("HTMLEvents");
2)初始化事件对象域(即:属性)
e.initEcent("click","true","true");
3)分派事件对象:
eventTarget.dispatchEvent();