监视已触发的Javascript事件(无论浏览器如何)

时间:2015-03-05 13:42:21

标签: javascript

我知道此问题之前已经得到解答,但所有答案都是针对浏览器特定的方法。我的问题很简单: 有没有办法监视所有被激活的事件(我需要的信息是被激活的事件和触发它的元素)来自Javascript?

我想过为所有事件和所有元素设置事件监听器,但这非常不实用,并且它不适用于自定义事件。

1 个答案:

答案 0 :(得分:-1)

有些东西可以帮助你。

您可以使用Objects.observe监视对象

某些dom元素和event listeners也存在突变mutation observer

但是,如果您确实需要监视所有事件,则可以重新定义addEvent函数。我认为你只需要调试和测试一些东西,否则这不是一个好习惯。

// The magic 
var oldAddEventListener = EventTarget.prototype.addEventListener;

EventTarget.prototype.addEventListener = function(eventName, eventHandler){
  // DO YOUR MAGIC
  oldAddEventListener.call(this, eventName, function(event) {
      // DO YOUR MAGIC
      eventHandler(event);
  });
};

有关https://css-tricks.com/capturing-all-events/

的更多信息