“未捕获的引用错误:未定义 getEventListeners”

Tim*_*eTq 13 javascript google-chrome google-chrome-extension referenceerror google-chrome-devtools

我正在尝试删除监听器。在控制台中,下面的代码正在运行。当我在 Chrome 扩展中使用代码时,我得到:“Uncaught ReferenceError:getEventListeners 未定义”。为什么会出现这种情况?是否有与“getEventListeners”功能等效的函数?

document.addEventListener('click', fireContentLoadedEvent, false);

function fireContentLoadedEvent () {
    console.log ("DOMContentLoaded");
    for (let i = 0; i < document.getElementsByClassName("someClass").length; i++) {
        plusButton = document.getElementsByClassName("someClass")[i]

        if ( getEventListeners(plusButton)["click"].length > 1) {

            plusButton.removeEventListener("click", getEventListeners(plusButton).click[1].listener);

        }
    }
}
Run Code Online (Sandbox Code Playgroud)

fre*_*nte 4

getEventListeners是控制台 API的一部分,在浏览器控制台之外不可用。

正如评论中提到的,您可以通过在调用该addEventListener方法之前监视该方法来复制它,例如:https: //stackoverflow.com/a/6434924/288906

在浏览器扩展中,您还需要确保在主世界(而不是孤立的世界)中运行此代码