Javascript 使用onkeydown(而不是onkeypress)按下了哪个字符
我需要知道在Javascript 使用onkeydown(而不是onkeypress)按下了哪个字符,javascript,google-chrome,keyboard,keyboard-events,Javascript,Google Chrome,Keyboard,Keyboard Events,我需要知道在onkeydown事件中按下了什么字符 这个答案看起来很简单 window.onkeydown=函数(e){ 控制台日志(e.key); e、 preventDefault();//我还需要这个 } 。。但它对Chrome不起作用:未定义 这: String.fromCharCode(e.keyCode) 也不起作用,因为它对a和a、-和6没有区别(用我的法语键盘布局,但用另一种布局可能会有些不同) 如何知道在onkeydown事件中按下的字符? jQuery有解决方案吗 重要
onkeydown
事件中按下了什么字符
- 这个答案看起来很简单
。。但它对Chrome不起作用:window.onkeydown=函数(e){ 控制台日志(e.key); e、 preventDefault();//我还需要这个 }
未定义
- 这:
也不起作用,因为它对String.fromCharCode(e.keyCode)
和a
、a
和-
没有区别(用我的法语键盘布局,但用另一种布局可能会有些不同)6
onkeydown
事件中按下的字符?
jQuery有解决方案吗
重要提示:答案可能是:“不要这样做,改用
onkeypress
”。
这对我的目的不起作用,因为在Chrome上,当调用onkeypress
时,使用e.preventDefault()
阻止默认浏览器的行为为时已晚。所以我真的需要使用onkeydown
重要提示2:我想在最后实现的是能够(在onkeydown
期间)知道键+
(或者=
,因为它在同一个键上)是否被按下。
使用keyCode
并不容易,因为+
可以:
FF WIN CHROME WIN IE WIN FF MAC SAFARI MAC
61 187 187 173 189 !! (= the key - on CHROME WIN !!)
或者使用US布局的
1O7
等。我确信它与其他键盘布局有很多不同的值。按下keydown
事件不会告诉您按下了哪个字符,而是告诉您按下了哪个键。无论如何,您正在查找e.which
@nnnnnn,如何查找+
键是否已按下、交叉浏览器、交叉操作系统和交叉键盘布局?(这并不容易,请参见问题末尾的表格)我的键盘上有两个+
键,一个与=
键相同(按shift键表示+
,您可以在事件处理程序中测试shift),另一个在数字键盘中。你想同时测试这两个吗?和@nnnnnn@Blazemonger No,事件。这根本解决不了问题:它可以是61(FF)、187(Chrome)、173(FF Mac)等,在其他浏览器或键盘布局上还有很多其他值。。。。所以这对我定位+
没有帮助。