Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
班次+;/Mac OSX上Firefox中的javascript未检测到密钥组合_Javascript_Jquery_Firefox_Macos - Fatal编程技术网

班次+;/Mac OSX上Firefox中的javascript未检测到密钥组合

班次+;/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

对于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.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,但在某些边缘情况下除外,例如修改键。如果可以的话,坚持按键盘。