|
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); |