javascript - Firefox 插件 sdk 在启动/部署时检查浏览器键绑定(bind)并警告它们是否被占用

标签 javascript firefox firefox-addon firefox-addon-sdk

你好,乐于助人的互联网人士:)

我一直在摆弄 ff 插件 sdk,但遇到了障碍。我的插件将有一个输入框,当我按 Ctrl + T 时,该输入框会弹出并显示。我的代码在我的非开发版本 ff 中可以正常执行此操作,因为我已取消绑定(bind)新选​​项卡绑定(bind)(Ctrl + T)。

    // Register key event handlers in each browser window
    var {observer} = require("sdk/keyboard/observer");
    var map = [];

    observer.on("keydown", function(event) {
        keylogger(event);
    });

    observer.on("keyup", function(event) {
        keylogger(event);
    });

    function keylogger(e){
        map[e.keyCode] = e.type == 'keydown';
        //console.log(e.keyCode); 
        if(map[17] && map[84]){ // maybe also check if the last key down was control.
            //console.log(map);
            // DO STUFF HERE!@
        };
    }

我的问题是,当我在控制台中从 cfx run 生成的应用程序中点击此按钮时,绑定(bind)已设置。我认为它只是 ff 的空白版本。我不想只是在调试时取消绑定(bind)它,计划是当有人获取插件时,它会检查该绑定(bind)是否存在,并提示用户取消绑定(bind)或只是取消绑定(bind)。有谁知道如何做到这一点?我不确定如何访问当前的键绑定(bind)。可能吗?

为任何帮助指导或评论干杯:)

最佳答案

我认为热键模块会覆盖默认值。也就是说,docs there几乎符合我的观点:

If you choose to use a key combination that's already defined, choose one which makes sense for the operation it will perform. For example, accel-S is typically used to save a file, but if you use it for something completely different then it would be extremely confusing for users.

No matter what you choose, it's likely to annoy some people, and to clash with some other add-on, so consider making the combination you choose user-configurable.

在这种情况下,重新定义 accel-T 是一个非常糟糕的主意;它可能是所有浏览器中最常用的键盘快捷键。我完全赞成自定义您自己的设置,但使用该快捷方式分发软件似乎很疯狂。为什么不使用 alt-T?

关于javascript - Firefox 插件 sdk 在启动/部署时检查浏览器键绑定(bind)并警告它们是否被占用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26735601/

相关文章:

javascript - 为什么我得到 "Can' t 从释放的脚本中执行代码”

javascript - 谷歌图表错误 :Cannot read property 'length' of undefined; Debugging error in Google Charts

javascript - 从用户查询中提取区域名称

css - Firefox:未显示本地托管的网络字体 - 即使使用 Access-Control-Allow-Origin "*"

javascript - 与返回原始 html 相比,json 是否会增加任何开销?

javascript - 使用异步 ajax 调用(过多)时 IE7 挂起 : false

javascript - Firefox 跨域请求

javascript - 通过超时在 Javascript 中休眠?

java - 是否可以通过下面描述的方式从 firefox 扩展连接到 java

ajax - 如何在 firefox 扩展中创建 JSON post 请求?