Перейдите на страницу входа в Twitter и введите в консоли следующее:
window.addEventListener('keypress', function(e){console.log('hello')}, true)
(ПРИМЕЧАНИЕ: как третий параметр установлен на true, который позволяет захватывать события. Это приводит к тому, что события сначала перехватываются окном перед тем, как его потребляет дочерний элемент.)
Попробуйте нажать несколько клавиш. Обратите внимание, что hello не выводится на консоль. Добавление прослушивателя событий для keydown или keyup ничего не меняет.
hello будет отображаться на большинстве веб-сайтов, но не на таких сайтах, как Twitter или Gmail.
Почему? Что останавливает прослушиватель событий?
EDIT: Кажется, работает в Firefox. Но не Chrome. Почему Chrome не запускает прослушиватель событий, как ожидалось?
ИЗМЕНИТЬ 2: Как показано несколькими людьми ниже, console.log является пустой функцией в Chrome для таких сайтов, как Twitter и Gmail. Почему это?