Skip to content

Instantly share code, notes, and snippets.

@tkafka
Forked from dmnsgn/listAllEventListeners.js
Last active September 11, 2025 08:23
Show Gist options
  • Save tkafka/1c5174ed5b446de7dfa4c04a3b09c95f to your computer and use it in GitHub Desktop.
Save tkafka/1c5174ed5b446de7dfa4c04a3b09c95f to your computer and use it in GitHub Desktop.

Revisions

  1. tkafka revised this gist Mar 6, 2019. 1 changed file with 4 additions and 3 deletions.
    7 changes: 4 additions & 3 deletions listAllEventListeners.js
    Original file line number Diff line number Diff line change
    @@ -1,11 +1,12 @@
    console.table((function listAllEventListeners() {
    let elements = [];
    const allElements = document.querySelectorAll('*');
    const allElements = Array.prototype.slice.call(document.querySelectorAll('*'));
    allElements.push(document); // we also want document events
    const types = [];
    for (let ev in window) {
    if (/^on/.test(ev)) types[types.length] = ev;
    }

    let elements = [];
    for (let i = 0; i < allElements.length; i++) {
    const currentElement = allElements[i];
    for (let j = 0; j < types.length; j++) {
    @@ -22,4 +23,4 @@ console.table((function listAllEventListeners() {
    return elements.sort(function(a,b) {
    return a.type.localeCompare(b.type);
    });
    })());
    })());
  2. tkafka revised this gist Mar 6, 2019. 1 changed file with 2 additions and 4 deletions.
    6 changes: 2 additions & 4 deletions listAllEventListeners.js
    Original file line number Diff line number Diff line change
    @@ -1,4 +1,4 @@
    const listeners = (function listAllEventListeners() {
    console.table((function listAllEventListeners() {
    let elements = [];
    const allElements = document.querySelectorAll('*');
    const types = [];
    @@ -22,6 +22,4 @@ const listeners = (function listAllEventListeners() {
    return elements.sort(function(a,b) {
    return a.type.localeCompare(b.type);
    });
    })();

    console.table(listeners);
    })());
  3. tkafka revised this gist Mar 6, 2019. 1 changed file with 5 additions and 5 deletions.
    10 changes: 5 additions & 5 deletions listAllEventListeners.js
    Original file line number Diff line number Diff line change
    @@ -12,16 +12,16 @@ const listeners = (function listAllEventListeners() {
    if (typeof currentElement[types[j]] === 'function') {
    elements.push({
    "node": currentElement,
    "listeners": [ {
    "type": types[j],
    "func": currentElement[types[j]].toString(),
    }]
    "type": types[j],
    "func": currentElement[types[j]].toString(),
    });
    }
    }
    }

    return elements.filter(element => element.listeners.length)
    return elements.sort(function(a,b) {
    return a.type.localeCompare(b.type);
    });
    })();

    console.table(listeners);
  4. @dmnsgn dmnsgn created this gist Apr 5, 2017.
    27 changes: 27 additions & 0 deletions listAllEventListeners.js
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,27 @@
    const listeners = (function listAllEventListeners() {
    let elements = [];
    const allElements = document.querySelectorAll('*');
    const types = [];
    for (let ev in window) {
    if (/^on/.test(ev)) types[types.length] = ev;
    }

    for (let i = 0; i < allElements.length; i++) {
    const currentElement = allElements[i];
    for (let j = 0; j < types.length; j++) {
    if (typeof currentElement[types[j]] === 'function') {
    elements.push({
    "node": currentElement,
    "listeners": [ {
    "type": types[j],
    "func": currentElement[types[j]].toString(),
    }]
    });
    }
    }
    }

    return elements.filter(element => element.listeners.length)
    })();

    console.table(listeners);