绑定哪个键以避免与本机浏览器快捷方式冲突

Sav*_*man 20 javascript browser keyboard-shortcuts cross-browser

我还没有看到这个问题.每个浏览器都有不同的原生键盘快捷方式.如果我们想在我们的网络应用程序中添加一些辛辣的东西,有人已经试图找出哪一个免费/安全使用?


更多信息:

我并不特别需要针对每个浏览器.5个专业就足够了.例如,Opera使用Ctrl+ key作为主要组合,几乎所有Alt+ key"自由绑定".

由于不同的浏览器使用不同的主快捷键激活密钥(Ctrl在Opera中),我可以很容易想象也使用不同的密钥来绑定快捷方式.ie Alt+ Key在Opera中Ctrl+ + Key在browser_2中Ctrl+ + Alt在浏览器3中+ .

Rya*_*son 11

要获得实用的解决方案,请复制Google.他们在Gmail(可能还有其他产品)中有键盘快捷键,可以很好地避免浏览器快捷方式.


Mat*_*t S 9

如果您只需要具有焦点的表单元素之外的键盘快捷键,我将使用普通字母(否Ctrl/ Alt/ Shift/等).如果表单元素具有焦点,则常规字符仅对浏览器很重要.否则他们会被忽略.

例如,如果您有分页内容,P可以是先前的,N也可以是下一个.

(不确定这是否能完全解决您的问题,因为当表单元素具有焦点时,这将不起作用.)


根据你的评论(焦点将在textarea内),我建议为每个动作选择一个单独的字母,每个浏览器使用不同的Ctrl/ Alt/ Shift组合.大多数人只使用一个浏览器,因此对于每个用户来说,只学习他们自己的组合并不是什么大问题.

因此,例如,一个浏览器中的Ctrl+ Alt+ N可能与另一个浏览器中的Alt+ 相同N.

不过,我要测试的第一件事是Shift,因为大多数内置组合不使用一个,但我不知道组合是否总是不区分大小写.还要注意特定于操作系统的组合.

这是迄今为止我发现的最常见的内容:

OS X    - FF/Safari/Chrome - ctrl-[key]
Windows - FF/IE            - ctrl-alt-[key]
Run Code Online (Sandbox Code Playgroud)


rtp*_*rry 5

简短的回答是:

令人失望的是,我们的研究发现除了3个密钥以外的所有密钥都是由一种技术或其他技术"声称"的:

* AccessKey / (slash)
* AccessKey (backslash)
* AccessKey ] (right square bracket)
Run Code Online (Sandbox Code Playgroud)

这在本文中解释:

这篇维基百科文章对这个主题进行了很好的一般性介绍: