我有一个用XUL编写的Firefox扩展。这需要一个热键。我希望有一个输入字段,用户可以按任意键,我可以通过编程方式确定按下了哪个键。
我不关心在OS内部具有元含义的关键组合(我不需要捕获Ctrl + Alt + Del)。
如果密钥已经由Firefox定义,我可以不捕获它(例如,如果用户按F1并帮助弹出而不是捕获的密钥,我很好)。
我还想有一些方法可以通过编程方式确定按下的键是否已经在Firefox中具有其他含义,但这可能超出了此请求的范围。我只是提到它以防万一。
我目前的解决方案,似乎已被许多附加组件采用,是提供一个文本框,用户可以在其中键入可打印字符,然后是一系列修改键的复选框。这个解决方案几乎不可行,但由于多种原因很糟糕(它不允许用户在其组合中使用非打印键,如功能键,它允许用户输入无效字符(例如没有物理键的Unicode字符)在键盘上),使用起来很尴尬。)
谢谢!
答案 0 :(得分:1)
您可以使用内嵌选项
https://developer.mozilla.org/en-US/Add-ons/Inline_Options
您可以检测文本输入中按下的键,并编写修饰符,如accel或alt。
来源示例: http://git.io/vez1o