WorkerGlobalScope继承:EventTarget

2018-10-25 11:36 更新

EventTarget

EventTarget是一个由对象实现的接口,这些对象可以接收事件,并为它们提供侦听器。

Element,document和window是最常见的活动目标,但其他的对象也可以是事件目标,例如XMLHttpRequest,AudioNode,AudioContext,等等。

许多事件目标(包括元素,文档和窗口)也支持通过on...属性来设置事件处理程序。

构造部分

EventTarget()
创建一个新的EventTarget对象实例。

方法

EventTarget.addEventListener()
在EventTarget上注册特定事件类型的事件处理程序。
EventTarget.removeEventListener()
从EventTarget中删除事件侦听器。
EventTarget.dispatchEvent()
向此EventTarget调度事件。

Mozilla chrome代码部分的其他方法

由JS实现的事件目标使用Mozilla扩展来实现on*属性。

  • void setEventHandler(DOMString类型,EventHandler处理程序)
  • EventHandler getEventHandler(DOMString类型)

示例

EventTarget Section的简单实现

var EventTarget = function() {
  this.listeners = {};
};

EventTarget.prototype.listeners = null;
EventTarget.prototype.addEventListener = function(type, callback) {
  if (!(type in this.listeners)) {
    this.listeners[type] = [];
  }
  this.listeners[type].push(callback);
};

EventTarget.prototype.removeEventListener = function(type, callback) {
  if (!(type in this.listeners)) {
    return;
  }
  var stack = this.listeners[type];
  for (var i = 0, l = stack.length; i < l; i++) {
    if (stack[i] === callback){
      stack.splice(i, 1);
      return;
    }
  }
};

EventTarget.prototype.dispatchEvent = function(event) {
  if (!(event.type in this.listeners)) {
    return true;
  }
  var stack = this.listeners[event.type].slice();

  for (var i = 0, l = stack.length; i < l; i++) {
    stack[i].call(this, event);
  }
  return !event.defaultPrevented;
};

规范

规范 状态 注释
DOM 
该规范中“EventTarget”的定义。
Living Standard
没有改变
文档对象模型(DOM)级别3事件规范 
该规范中“EventTarget”的定义。
已过时 一些参数现在是可选的(listener),或接受null值(useCapture)。
文档对象模型(DOM)级别2事件规范 
该规范中“EventTarget”的定义。
已过时 初步定义。

浏览器兼容性部分

电脑端 移动端
Chrome
Edge
Firefox
Internet Explorer
Opera
Safari
Android webview Chrome for Android
Edge Mobile Firefox for Android
Opera for Android
iOS Safari
基本支持 支持:1 支持 支持:1 支持:9 支持:7 支持:10.1 支持:1 支持:18 支持 支持:4 支持:7 支持:10.1
EventTarget() 构造函数 支持:64 支持:59 不支持 支持:51 不支持 支持:64 支持:64 支持:59 支持:51 不支持
addEventListener
支持:1

支持:12 支持:1 支持:9 支持:7 支持:1
支持:1

支持:18

支持 支持:4 支持:7 支持:1
dispatchEvent 支持:4 支持:12 支持:2 支持:9 支持:9 支持:3.2 支持:4 支持:18 支持 支持:4 支持 支持
removeEventListener 支持:1 支持:12 支持:1 支持:9 支持:7 支持:1 支持:1 支持:18 支持 支持:4 支持:7 支持:1
以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号