Поиск функции перехвата ключевого события в JavaScript? - PullRequest
1 голос
/ 12 июля 2011

Я пишу сценарий пользователя для сложного веб-приложения.Существующий код перехватывает события нажатия клавиш «j» и «k».

Я бы хотел найти эту функцию, чтобы увидеть, что она делает.Есть ли способ перечислить все ключевые обработчики событий в документе?Или, может быть, каким-то образом установить точку останова в Chrome Developer Tools, когда я нажимаю букву?

Ответы [ 2 ]

5 голосов
/ 12 июля 2011

Да, в инструментах разработчика перейдите на вкладку Сценарии , выберите страницу, перейдите на Точки останова прослушивателя событий , Клавиатура , keydown.

enter image description here

Хотя это не обязательно поможет вам, например, если сценарий минимизирован или они используют библиотеку.Но вы можете попробовать.

1 голос
/ 12 июля 2011

Если вы можете запустить часть своего скрипта первыми и если ключи обрабатываются на уровне документа, вы можете установить этот перехват, чтобы увидеть, какая часть кода устанавливает обработчик клавиатуры:

var oldListener = document.addEventListener;
document.addEventListener = function(type, listener, capture) {
    if (type == "keydown" || type == "keyup" || type == "keypress") {
        console.log("type=" + type + " listener=" + listener.toString().slice(0, 80));
    }
    return (oldListener.apply(this, arguments));
}
...