使用Chrome的webkit检查器删除事件侦听器

Aks*_*hat 16 javascript webkit google-chrome inspector

我知道你可以在Chrome Inspector中看到事件监听器,但是我正在做一些调试工作,并且有很多事件监听器在我周围我想要禁用一些而不编辑代码

在此输入图像描述

有没有办法从Webkit检查器快速禁用事件侦听器?

也许看一下并removeEventListener在监听器的控制台中输入一些代码?我该怎么做?例如,我如何删除上面的"点击"听众

Jac*_*son 11

您可以使用getEventListeners(element).click[index].listener获取对侦听器的引用(在WebKit控制台中).

因此,要删除第一个侦听器,您可以执行以下操作:

document.removeEventListener('click', getEventListeners(document).click[0].listener)
Run Code Online (Sandbox Code Playgroud)

同样,要删除所有侦听器,您可以使用此功能:

function removeEventListeners(element, listenerMap) {
    Object.keys(listenerMap).forEach(function (name) {
        var listeners = listenerMap[name];
        listeners.forEach(function (object) {
            element.removeEventListener(name, object.listener);
        });
    });
}

removeEventListeners(document, getEventListeners(document))
Run Code Online (Sandbox Code Playgroud)


Ale*_*lov 4

抱歉,您运气不好(至少暂时如此)。removeEventListener需要精确的侦听器 Function 对象作为参数,而 DevTools 不允许您以任何方式掌握侦听器函数。

如果您确实需要此功能,请在http://new.crbug.com(针对 Chrome)或http://bugs.webkit.org(针对 WebKit,首选方式)提交错误。