Event Listeners list

Adds a method to elements to get their event listeners

当前为 2020-04-02 提交的版本,查看 最新版本

  1. // ==UserScript==
  2. // @name Event Listeners list
  3. // @description Adds a method to elements to get their event listeners
  4. // @version 1.0.1
  5. // @grant none
  6. // @match *://*/*
  7. // @license MIT
  8. // @run-at document-start
  9. // @namespace https://greasyfork.org/users/223733
  10. // ==/UserScript==
  11.  
  12. function main() {
  13. var _addEventListener = Element.prototype.addEventListener;
  14. var _removeEventListener = Element.prototype.removeEventListener;
  15.  
  16. Element.prototype.listEventListeners = function(name) {
  17. if (!name) return this._eventsList || {};
  18. if (!this._eventsList) return []
  19. return this._eventsList[name] || [];
  20. };
  21.  
  22. Element.prototype.addEventListener = function(name, callback) {
  23. _addEventListener.bind(this)(name, callback);
  24. if (!this._eventsList) this._eventsList = {};
  25. if (!this._eventsList[name]) this._eventsList[name] = [];
  26. this._eventsList[name].push(callback);
  27. };
  28.  
  29. Element.prototype.removeEventListener = function(name, callback) {
  30. _removeEventListener.bind(this)(name, callback);
  31.  
  32. if (!this._eventsList) return;
  33. if (!this._eventsList[name]) return;
  34. this._eventsList[name].splice(this._eventsList[name].indexOf(callback), 1);
  35. };
  36. }
  37.  
  38. var script = document.createElement('script');
  39. script.appendChild(document.createTextNode('('+ main +')();'));
  40. (document.body || document.head || document.documentElement).appendChild(script);