Event.target,Event.toElement和Event.srcElement有什么区别?

我有以下代码:

document.oncontextmenu = function(evt) { evt = evt || window.event; console.log(evt.target, evt.toElement, evt.srcElement); }; 

通过点击<div class="foo"></div>上的鼠标右键,返回:

div.foo,div.foo,div.foo

通过在<input>上单击鼠标右键,返回:

input,input,input

所有似乎都带来了相同的结果。 有没有什么情况比其他人有其他用途?

事件目标是事件发送到的元素:

使用DOM事件stream定位事件的对象。 事件目标是Event.target属性的值。

srcElement是IE获取target的非标准方式。

当前事件目标是具有当前调用的事件监听器的元素:

在事件stream中,当前事件目标是与当前正在调度的事件处理程序关联的对象。 这个对象可能是事件目标本身或其祖先之一。 当事件通过事件stream的各个阶段从一个对象传播到另一个对象时,当前事件目标会发生变化。 当前事件目标是Event.currentTarget属性的值。

在事件监听器中使用this是获取当前事件目标的常用(和标准)方式。

有些事件有相关的目标:

用于标识与UI事件相关的辅助EventTarget ,具体取决于事件的types。

fromElementtoElement是IE获取相关目标的非标准方式。