accesskey VS导航键盘快捷键

时间:2012-02-02 15:37:35

标签: javascript html keyboard-shortcuts access-keys

这似乎是一个经常出现的棘手问题,但我仍然没有修复也没有解决方法:

有没有办法在键盘快捷键之前拦截accesskeys?

我需要在收藏夹导航器IE和FF上使用accesskeys,但我不想将现有的短信视为保留。否则它不会留下很多可能性(目前我只使用数字)。

注意:通过accesskey,我的意思是accesskey html属性。

有什么想法吗? Flash应用程序可以做到这一点,那么JavaScript呢?

<小时/> 例如,这里是一个可访问的控件:

<button onclick="alert('Hello');" accesskey="F">Alt+F to activate</button>

当我尝试激活它时,我只需打开文件菜单:'(

2 个答案:

答案 0 :(得分:1)

John Resig(jQuery的创建者)一直致力于jQuery的“热键”插件,它应该可以满足您的需求。

https://github.com/jeresig/jquery.hotkeys

我知道这不是一个'jQuery问题',并且添加一个'小'的框架并不理想,但它应该提供一个解决方案。另一方面,你总是可以看看他是如何做到灵感的。

答案 1 :(得分:0)

这显然取决于浏览器。对于&#34;三巨头&#34;:

  • Firefox:菜单快捷方式使用 Alt ,&#34; accesskey&#34;快捷方式使用 Shift Alt ,因此没有冲突。
  • Google Chrome:两种类型的快捷方式都使用 Alt ,菜单快捷方式优先,,如果存在冲突,&#34; accesskey&#34;快捷方式使用 Shift Alt ,因此它们仍然可以访问。有关示例,请参阅我对Disable Alt functions (shortcuts) in Google Chrome的回答。
  • Internet Explorer:这两种类型的快捷方式都使用 Alt 和&#34; accesskey&#34;快捷方式优先 - 只是你想要的: - )。

简而言之: 不,没有办法在Javascript中覆盖浏览器行为(可以说这可能是一个安全漏洞),但所有浏览器都有办法处理这些冲突。