Вот мой сценарий (намеренно упрощенный):
// ==UserScript==
// @name StackOverflowExample
// @include https://stackoverflow.com/*
// @version 1
// @grant none
// ==/UserScript==
document.addEventListener('keydown', (e) => {
console.log('I print before the "e"')
conosel.log({e})
console.log('I print after the "e"')
})
Когда этот сценарий загружается на мою страницу (переполнение стека), я вижу сообщение «Я печатаю до того, как« e »» выводится на консоль., но я не вижу 'e' или 'я печатаю после того, как' e '' вошли в систему.Почему это так?
Я пытался добавить такие вещи, как e.preventDefault()
, и это не имело никакого значения.
Удивительно то, что подобные вещи внутри слушателя событий все еще работают:
document.addEventListener('keydown', (e) => {
if(e.keyCode !== 40)){
console.log('you pressed some random key')
} else {
console.log('you pressed the "UP" arrow key')
}
})
Итак, объект e
определен (просто нажмите любую клавишу, а затем «вверх»).Любые идеи?
Редактировать: кажется, я был неправ со второй частью (хотя я был так уверен, что я видел, что она работает на другом сайте ...)
Browser = firefox 63.0.3 (64-разрядная версия)
ОС = Ubuntu 18.04
GreaseMonkey = 4.7