8

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

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

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

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

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


例如这里是一个可访问的控件:

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

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

4

2 回答 2

1

John Resig(jQuery 的创建者)一直在为 jQuery 开发一个“热键”插件,它应该可以满足您的需求。

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

我知道这不是一个“jQuery 问题”,并且为“小”的东西添加一个框架并不理想,但它应该提供一个解决方案。另一方面,您可以随时查看他是如何获得灵感的。

于 2012-02-09T14:36:23.863 回答
0

显然,这将取决于浏览器。对于“三巨头”:

  • Firefox:菜单快捷键使用Alt,“accesskey”快捷键使用ShiftAlt,所以没有冲突。
  • 谷歌浏览器:两种类型的快捷键都使用Alt,菜单快捷键优先,但是,如果有冲突,“accesskey”快捷键使用ShiftAlt,所以它们仍然可以访问。例如,请参阅我对Google Chrome 中禁用 Alt 功能(快捷方式)的回答。
  • Internet Explorer:两种类型的快捷方式都使用Alt,并且“accesskey”快捷方式优先 - 正是您想要的 :-)。

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

于 2015-08-05T09:22:16.170 回答