如何通过javascript实现CTRL或SHIFT + <letter>的快捷键组合?</letter>

时间:2008-09-15 17:14:16

标签: javascript keyboard keyboard-shortcuts

ASP.NET 2.0 Web应用程序,如何实现 CTRL + Letter 的快捷键组合,最好是通过JavaScript,使Web应用程序符合人体工程学更好?如何通过JavaScript捕获多键键盘事件?

4 个答案:

答案 0 :(得分:10)

简短的回答是您使用Javascript捕获 keydown 事件并使用该事件触发函数。 相关文章:

如果您使用的是jQuery library,我建议您查看HotKeys plugin以获取跨浏览器解决方案。

  
    

我知道这不是回答原始问题,但我的建议是:不要在Web应用程序中使用关键组合快捷方式!

         

为什么呢?因为它可能会破坏可用性,而不是增加它。虽然人们普遍认为普通浏览器中没有使用“一键快捷键”(Opera将其从上一个主要版本中删除为默认值),但您无法弄清楚各种浏览器使用的组合键快捷键是什么,也不会是什么。

  

Gizmo提出了一个很好的观点。有一些关于http://www.clagnut.com/blog/193/常用的accesskey分配的信息。

如果你确实更改了访问键,那么这里有一些文章提供了很好的建议:

您可能会发现此页Firefox's default Keyboard and Mouse Shortcuts有用(Another version相同的信息)。 Internet Explorer 7Internet Explorer 6的键盘快捷键。键盘快捷键for Opera and Safari

您更有可能遇到JAWS或其他添加更多键盘快捷键的屏幕阅读器的问题。

答案 1 :(得分:5)

您的事件侦听器函数将传递一个Event对象。它有很多有用的信息,包括属性“altKey”,“ctrlKey”,“shiftKey”和“metaKey”。如果在该事件触发时按下任何修改键,则相应的属性将设置为true。

这适用于键盘和鼠标事件(onclick等)。请注意,如果您有onkeydown事件侦听器,则修饰键本身将触发该事件。

window.onkeyup = function(e) {
  if (e.altKey) alert("Alt pressed");
  if (e.shiftKey) alert("Shift pressed");
}

这在Firefox 3,Windows XP上进行了测试。

答案 2 :(得分:2)

Javascript支持 ctrl + alt + shift 键。我想你可以弄明白其余的。 Link

答案 3 :(得分:-2)

我知道这不是回答原始问题,但我的建议是:不要在Web应用程序中使用关键组合快捷方式!

为什么呢?因为它可能会破坏可用性,而不是增加它。虽然人们普遍认为普通浏览器中没有使用“一键快捷键”(Opera将其从上一个主要版本中删除为默认值),但您无法弄清楚各种浏览器使用的组合键快捷键是什么,也不会是什么。

此外,如果您的访问者使用高度可定制的浏览器,例如Firefox或Opera,他们可能会配置自己的快捷方式或使用其他插件来定义其他一些快捷方式。

请记住,Web应用程序是浏览器所依赖的,并且您绝不应该假设如果它适用于您最喜爱的调整最强大的浏览器,它将对您朋友的浏览器做出同样的反应。