首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FireFox SDK按键/按键事件

FireFox SDK按键/按键事件
EN

Stack Overflow用户
提问于 2012-04-28 13:01:02
回答 1查看 962关注 0票数 2

是否有可能在FireFox加载项中跟踪按键/按键事件?我想实现类似于以下场景的东西:

  • 按下并按住修饰符键面板后,当按住这些修饰符键时,会出现
  • ,按下其他键将导致面板
  • 在释放修饰符键时发生一些操作,该面板将消失

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-04-28 19:49:14

为此,您需要在每个浏览器窗口中注册事件侦听器。高级SDK不允许您直接访问浏览器窗口,但是您必须为此使用低级别模块,特别是(目前没有文档的) sdk/keyboard/observer模块。它允许您侦听所有浏览器窗口中的关键事件,因此类似的内容应该可以工作:

代码语言:javascript
复制
// Register key event handlers in each browser window
var {observer} = require("sdk/keyboard/observer");

observer.on("keydown", function(event) {
  // Ignore events that have been handled elsewhere (e.g. by the web page)
  if (event.defaultPrevented)
    return;

  if (...)
    panel.show();
});
observer.on("keyup", function(event) {
  // Ignore events that have been handled elsewhere (e.g. by the web page)
  if (event.defaultPrevented)
    return;

  if (...)
    panel.hide();
});

备注:

  • sdk/keyboard/observer模块是完全没有文档的,它可能改变或完全离开任何time.
  • Originally这里提出的解决方案使用WindowTrackersdk/window-utils模块,现在已被废弃。如果您真的想亲自查看浏览器窗口,那么现在可以使用(也是没有文档的) sdk/windows/observer模块,它允许侦听openclose事件。区分浏览器窗口的函数isBrowser()现在可以通过sdk/window/utils module获得。您还需要使用windows() function来考虑已经打开的窗口,windows观察者没有执行该windows() function
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10363708

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档