【问题标题】:onFocus event.which is always 0onFocus 事件。它始终为 0
【发布时间】:2019-09-15 22:48:13
【问题描述】:
我想进入一个内容可编辑的 div 并做一些事情,因为我正在使用onFocus="(arguments[0].keyCode ? arguments[0].keyCode : arguments[0].which) === 9",问题是,arguments[0].which/keyCode 始终为 0,(对于 tab 应该是 9)
有什么想法吗?
(是的,这只是被标记为重复,但它不是(至少对于链接的重复))
【问题讨论】:
标签:
javascript
html
focus
contenteditable
【解决方案1】:
问题是onFocus 事件与key-action 事件不同,因此它不携带该信息。您可以尝试另一种方法,例如侦听文档上的keyup 事件,然后检查您的元素是否具有焦点。这是一个带有 2 个输入的工作示例,您可以尝试切换到第二个。
document.addEventListener('keyup', evt => {
if ((evt.keyCode ? evt.keyCode : evt.which) === 9 && document.querySelector('#input2:focus')) {
console.log('I WAS TABBED INTO')
}
})
<input name="asd">
<input id="input2">