codecamp

WorkerGlobalScope继承:EventTarget

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
WorkerGlobalScope方法:importScripts()
EventTarget构造函数
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

Fetch API官方文档指南

Fetch API方法

WindowOrWorkerGlobalScope执行者:window

window属性

WindowOrWorkerGlobalScope执行者:WorkerGlobalScope

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }