Используйте инспектор веб-приложений Chrome, чтобы удалить прослушиватель событий

Я знаю, что вы можете видеть прослушиватели событий в Chrome Inspector, но я выполняю некоторую отладочную работу, и вокруг так много слушателей событий, что я хотел бы отключить некоторые из них без редактирования кода

enter image description here

Есть ли способ быстро отключить прослушиватель событий из инспектора Webkit?

Возможно, посмотрите и введите какой-нибудь код в консоль, чтобыremoveEventListener слушатель? Как бы я это сделал? Например, как бы я удалил & quot; нажмите & apos; слушатель выше

Ответы на вопрос(4)

Сначала найдите элемент, к которому присоединен этот прослушиватель событий. Давайте назовем это е. Затем вы выполняете: e.onclick=null. For example, many event listeners are attached to "body", then the above code becomes: document.body.onclick=null. After that the event listener is removed.

 13 мар. 2015 г., 19:18
Только что попробовал то, что вы предложили, и это не сработало при создании прослушивателя событий с помощью: document.body.addEventListener (& quot; click & apos ;, function () {console.log (& amp;
 15 мар. 2015 г., 12:57
Да, ты прав. Мои тесты не охватывали все случаи. Кажется, правильный ответ здесь:stackoverflow.com/questions/4919079/…

Просто:

getEventListeners(document).click[0].remove()

Это работает и с другими элементами:

getEventListeners($('#submit-button')[0]).click[0].remove()

И другие виды событий:

getEventListeners($('#login-form')[0]).submit[0].remove()
 04 авг. 2018 г., 17:53
Удалить не метод для объекта слушателя.
Решение Вопроса

removeEventListener требует точного объекта функции слушателя в качестве аргумента, и DevTools никоим образом не позволяет вам захватить функцию слушателя.

Если вам определенно нужна эта функция, пожалуйста, отправьте сообщение об ошибке наhttp://new.crbug.com (против Chrome) илиhttp://bugs.webkit.org (против WebKit, предпочтительный способ).

 01 сент. 2017 г., 14:49
Ответ Джексона ниже работает в Chrome с 2017 года.stackoverflow.com/a/32191966/2661831

getEventListeners(element).click[index].listener получить ссылку на слушателя (в консоли WebKit).

Итак, чтобы удалить первого слушателя, вы можете сделать:

document.removeEventListener('click', getEventListeners(document).click[0].listener)

Точно так же, чтобы удалить всех слушателей, вы можете использовать эту функцию:

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))
 01 сент. 2017 г., 14:48
Это отличный ответ. Обратите внимание, что вам, возможно, придется вызывать его с окном вместо документа.

Ваш ответ на вопрос