这是我的脚本(故意简化):
// ==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
定义了对象(只需按任意键,然后按“向上”)。有任何想法吗?
编辑:第二部分似乎我错了,(虽然我很确定我看到它在另一个网站上工作......)