是否有可能在FireFox加载项中跟踪按键/按键事件?我想实现类似于以下场景的东西:
。
发布于 2012-04-28 19:49:14
为此,您需要在每个浏览器窗口中注册事件侦听器。高级SDK不允许您直接访问浏览器窗口,但是您必须为此使用低级别模块,特别是(目前没有文档的) sdk/keyboard/observer模块。它允许您侦听所有浏览器窗口中的关键事件,因此类似的内容应该可以工作:
// 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.WindowTracker从sdk/window-utils模块,现在已被废弃。如果您真的想亲自查看浏览器窗口,那么现在可以使用(也是没有文档的) sdk/windows/observer模块,它允许侦听open和close事件。区分浏览器窗口的函数isBrowser()现在可以通过sdk/window/utils module获得。您还需要使用windows() function来考虑已经打开的窗口,windows观察者没有执行该windows() functionhttps://stackoverflow.com/questions/10363708
复制相似问题