班次+;/Mac OSX上Firefox中的javascript未检测到密钥组合
对于OSX 10.5.8上Firefox 3.6.3上的“Shift+/”组合键,此javascript代码始终返回零 但在OSX/mac上的Chrome上,它返回的是期望值191班次+;/Mac OSX上Firefox中的javascript未检测到密钥组合,javascript,jquery,firefox,macos,Javascript,Jquery,Firefox,Macos,对于OSX 10.5.8上Firefox 3.6.3上的“Shift+/”组合键,此javascript代码始终返回零 但在OSX/mac上的Chrome上,它返回的是期望值191 GetKeyCode = function(e) { var code = 0; if (!e) { e = window.event } if (e.keyCode) { code = e.keyCod
GetKeyCode = function(e) {
var code = 0;
if (!e) {
e = window.event
}
if (e.keyCode) {
code = e.keyCode;
} else if (e.which) {
code = e.which;
}
return code;
};
GetKeyCode正在从jQuery获取keydown事件
jQuery(document).keydown(function(e) { ...... });
这里有没有bug,或者我遗漏了一些非常简单的东西?
请帮忙
提前谢谢。
-Parimal Das如果它来自jQuery,您应该只能使用
e。事实上,查找e.keyCode
可能是导致问题的原因,因为如果按住Shift键,则不会填充该代码。请参阅。如果它来自jQuery,您应该只能使用e。事实上,查找e.keyCode
可能是导致问题的原因,因为如果按住Shift键,则不会填充该代码。请参阅。这是Firefox中一个特定于Mac OSX的错误:
按住shift键时,其他几个键也会出现这种情况:句点、逗号和破折号
以下页面记录了此浏览器和许多其他关于关键事件的浏览器变体:
这是Firefox中一个特定于Mac OSX的bug:
按住shift键时,其他几个键也会出现这种情况:句点、逗号和破折号
以下页面记录了此浏览器和许多其他关于关键事件的浏览器变体:
如何附加GetKeyCode
?到哪个事件,在哪个元素上?有关键盘事件的更多信息,请查看。这是一个按键事件。我也更新了帖子。谢谢。你为什么创建这个社区Wiki?如果你使用jQuery,你不需要规范化事件接口。但是它在我的Firefox(3.6.3/Linux)和Chromium(5.0.375.70)中可以使用:jQuery(document).keydown(函数(e){var code=0;if(e.keyCode){code=e.keyCode;}else if(e.which){code=e.which;}console.log(code);})代码>。可能是Mac特有的?如何附加GetKeyCode
?到哪个事件,在哪个元素上?有关键盘事件的更多信息,请查看。这是一个按键事件。我也更新了帖子。谢谢。你为什么创建这个社区Wiki?如果你使用jQuery,你不需要规范化事件接口。但是它在我的Firefox(3.6.3/Linux)和Chromium(5.0.375.70)中可以使用:jQuery(document).keydown(函数(e){var code=0;if(e.keyCode){code=e.keyCode;}else if(e.which){code=e.which;}console.log(code);})代码>。也许是Mac特有的?我想你把keyCode
与charCode
混淆了:“charCode
在keydown和keydup事件中从未设置过。在这些情况下,keyCode
被设置了。”“keyCode
始终在keydown和keydup事件中设置。在这些情况下,charCode
永远不会被设置。“但是关于jQuery规范化事件,您是对的。which
:”当浏览器使用不同的属性来存储此信息时,jQuery规范化。which
属性,以便我们可以可靠地使用它来检索关键代码。此代码对应于键盘上的键,包括箭头等特殊键的代码。为了捕捉实际的文本输入,.keypress()
可能是一个更好的选择。事实上,我会避免使用keydown/keypup,但在某些边缘情况下除外,例如修改键。如果可以,请坚持按键。我认为您会将keyCode
与charCode
混淆:“charCode
在keydown和keydup事件中从不设置。在这些情况下,会改为设置keyCode
。”另外请查看:“keyCode
始终在keydown和keydup事件中设置。在这些情况下,charCode
永远不会被设置。“但是关于jQuery规范化事件,您是对的。which
:”当浏览器使用不同的属性来存储此信息时,jQuery规范化。which
属性,以便我们可以可靠地使用它来检索关键代码。此代码对应于键盘上的键,包括箭头等特殊键的代码。为了捕捉实际的文本输入,.keypress()
可能是一个更好的选择。事实上,我会避免使用keydown/keypup,但在某些边缘情况下除外,例如修改键。如果可以的话,坚持按键盘。