【问题标题】:Detect FN-Key on Mac using Javascript使用 Javascript 在 Mac 上检测 FN 键
【发布时间】:2012-01-06 23:05:53
【问题描述】:

我想在我的 CMS 应用程序中捕获 Mac 键盘上的 fn 键。将事件绑定到键并记录代码显示 fn 键返回的键码为 0(零)。

我很想把它当作一个给定的 - 但在我实现它之前,我想与你们核对一下,看看你们是否认为这是这个密钥的正确代码,或者它是否仅仅意味着系统不知道如何解释特定的关键事件。

如果能在这里获得一些意见会很棒。

谢谢!

【问题讨论】:

  • 我刚刚发现在使用 >/
  • @user1018787 请问你为什么需要这个?将这样的组合键用于 CMS 似乎很奇怪。
  • 我在 CMS 中提供了 100% 的实时界面,这意味着整个页面都有大量的控件。为了允许用户按原样预览页面,我提供了一个热键来实时混合所有控件。我将 CTRL 键绑定到这个并且效果很好。但是,有两种类型的控件:配置按钮和删除按钮。后者通常不可见,但仅在您按住 ALT 按钮时才会出现。但是,在某些情况下,这些按钮会重叠,因此用户会按 CTRL+ALT,但随后单击控件会触发上下文菜单
  • 这就是为什么我寻找不同的热键而不是 CTRL。 cmd 键可以工作(metakey),但它的使用就像在 Windows 上使用 ALT-TAB 来切换应用程序一样,所以这不是一个好主意。一旦用户单击,shift 键将触发文本选择。而且我没有其他选择。
  • 对评论泛滥感到抱歉。经过一些进一步的研究和测试,我得出结论,我将使用 META+ALT 进行特殊情况处理。这很好用,因为系统无法将 ALT+META+TAB 识别为 META+TAB。并且点击也是可能的 - 没有出现上下文菜单。然而,上面的问题对其他人来说可能仍然很有趣,所以我将其留待回答。

标签: javascript macos keypress hotkeys


【解决方案1】:

我在这里可能是错的,但我认为您将无法像 CTRL 键一样捕获 Fn 键。 Fn + 其他一些键将触发实际的 keydown 或 keypress,因为它可以让您按下 F1-F12 键。您也许可以使用 shift 键,但请确保它不会进行文本选择。

在 jQuery 中,我会执行 $("#my-element").disableSelection(),然后查看 Shift + 单击是否按您希望的方式工作。

【讨论】:

  • 我认为您对 FN 键的看法是正确的。也感谢您的建议,但我决定通过使用元(Apple CMD)键完全采用另一条路线。无论如何,这是很好的输入!
【解决方案2】:

如果我没记错的话,您可以捕获 fn 键,就像它是 shift、opt 或 cmd 一样。在 Mountain Lion 上,您可以按两次 fn 调出听写。即使在 Lion 上,您也可以在某些游戏中将 fn 映射为控件(参见 HoN,或 Heroes of Newerth,您可以在其中使用 fn 作为控制键)。问题是我不知道怎么做,也找不到办法。但是,正如我所说,我很确定您可以这样使用它。

由于 bootcamp 驱动程序,我认为这不会在 Windows 上工作,我真的希望有人在 bootcamp 上提出解决方案,因为我讨厌在 Windows 中放置 fn-ctrl 键的位置。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-21
    • 2015-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-25
    • 1970-01-01
    相关资源
    最近更新 更多