通过HTML指定事件处理程序
🔥使用一个与相应事件处理程序同名的元素属性来指定事件
- 由于其值是javascript代码(可以是具体的操作,或是调用脚本),因此不能使用未经转义的HTML语法字符,如<、>、&、""等,将其值设置为null即可删除事件处理程序
- 事件处理程序在执行时,有权访问全局作用域中的任何代码
这样指定事件处理程序的独到之处:
会创建一个封装着元素属性值的函数,其中有一个event变量
,通过它可以直接访问事件对象🔴,在这个函数内部,this
等于事件的目标元素🔵,在其内部,它使用with扩展了作用域,使得我们无需引用元素就能访问字段🔶这样指定事件处理程序的缺点:
HTML与javascript紧密耦合;
扩展事件处理程序的作用域链时会因浏览器不同而导致不同的结果;
HTML元素与事件存在响应时差;
DOM0级事件处理程序——将一个函数赋值给一个事件处理程序属性
- 每个元素都有自己的事件处理程序属性,如onclick
- 这种方式指定的事件处理程序在元素的作用域中运行:
此时的this
引用当前元素🔷 - 这种方式指定的事件处理程序在事件流的冒泡阶段被处理