JavaScript事件处理

在IE 3.0和Netscape 2.0浏览器中开始出现事件。DOM 2规范开始标准化DOM事件,直到2004年发布DOM 3.0时,W3C才完善事件模型。目前,所有主流浏览器都支持DOM 2事件模块。IE8及其早期版本还继续使用IE事件模块。

1、事件基础

1.1、事件模型

在浏览器发展历史中,出现以下4种事件处理模型:

  • 基本事件模型:也称为DOM 0事件模型。它是浏览器初期出现的一种比较简单的事件模型,主要通过HTML事件属性,为指定标签绑定事件处理函数。由于这种模型应用比较广泛,获得了所有浏览器的支持,目前依然比较流行。但是这种模型对于HTML文档标签依赖严重,不利于JavaScript独立开发。
  • DOM事件模型:由W3C制定,是目前标准的事件处理模型。除了IE怪异模式不支持外,符合标准的浏览器都支持该模型。DOM事件模型包括DOM 2事件模块和DOM 3事件模块,DOM 3事件模块为DOM 2事件模块的升级版,较DOM 2事件模块略有完善,主要是新增加一些事情类型,以适应移动设备的开发需要,但大部分规范和用法保持一致。
  • IE事件模型:IE 4.0及其以上版本浏览器支持,与DOM事件模型相似,但用法不同。
  • Netscape事件模型:由Netscape 4浏览器实现,在Netscape 6中停止支持。

1.2、事件流

事件流就是多个节点对象对同一个事件进行响应的先后顺序,主要包括以下3种类型:

相关推荐
laocooon523857886几秒前
C++中的安全指针(智能指针)
开发语言·c++
咸鱼加辣1 分钟前
【python面试题】LRUCache
开发语言·python
LitchiCheng2 分钟前
WSL2 中 pynput 无法捕获按键输入?
开发语言·python
中年程序员一枚2 分钟前
Python 中处理视频添加 / 替换音频
开发语言·python·音视频
yuuki2332333 分钟前
【C++】模板初阶
java·开发语言·c++
weixin_395448913 分钟前
“一次性拼接 RM+FSD 做单次前向/反向”的方案
前端·javascript·推荐算法
爱吃大芒果4 分钟前
Flutter 路由进阶:命名路由、动态路由与路由守卫实现
开发语言·javascript·flutter·华为·ecmascript
一只爱吃糖的小羊5 分钟前
深入 React 原理:Reconciliation
前端·javascript·react.js
世转神风-7 分钟前
qt-lambda信号槽机制
开发语言·qt
未来之窗软件服务9 分钟前
幽冥大陆(五十二)V10酒店门锁SDK TypeScript——东方仙盟筑基期
前端·javascript·typescript·酒店门锁·仙盟创梦ide·东方仙盟·东方仙盟sdk