我曾经能够通过密码访问event.key
事件的event.code
和/或event.keyCode
和/或event.which
和/或jQuery的标准化keydown
和文本输入。
在撰写本文时,它仍然可以在Chrome(71)中使用,但已停止在Firefox(65)中使用。
请参见小提琴:
$('input').on('keydown', e => {
$('pre').append("keyCode: " + e.which + " " + e.key + " " + e.code + "\n"); });
$('pre').append('type in box\n');
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
<pre></pre>
<input type="password" >
在Chrome上,这会输出期望值,例如
keyCode: 68 d
keyCode: 83 s
keyCode: 18 Alt
现在在Firefox上输出(无论按下了哪些键):
keyCode: 229 Process undefined
keyCode: 229 Process undefined
keyCode: 229 Process undefined
如果将输入更改为text
,则Firefox不会以这种方式运行。
MDN似乎没有对此进行引用。
我现在已经更改了一些代码以使用keypress
,这似乎仍然可以使用,但是我想了解为什么以及是否有一种方法可以使用keydown / up。