【问题标题】:Disabling hotkeys in firefox addon在Firefox插件中禁用热键
【发布时间】:2011-06-23 01:20:58
【问题描述】:

有没有办法在 firefox 插件中禁用键盘快捷键(热键)?

【问题讨论】:

  • 你为什么不去谷歌搜索一下呢?
  • 认真的吗?哇,这是一个我从未想过的好主意!!!
  • 是的,谷歌搜索是要走的路。寻找“按键事件”,preventDefaultstopPropagation。如果您想要更详细的答案,您应该更好地解释您要达到的目标。
  • 我知道谷歌并且确定我搜索过这个主题。更好的解释?我正在构建一个插件,我需要禁用热键,我发现的只是创建快捷方式并向它们添加事件,但没有关于处理已经制作的快捷方式。
  • 我google了一下,发现了这个问题!

标签: firefox-addon xul hotkeys


【解决方案1】:

如果您的插件有 browser.xul 的覆盖,则处理“keypress”事件的替代方法是使用“加载”处理程序中的脚本从浏览器 XUL 文档中删除相关元素,如下所示:

var key = document.getElementById("key_openDownloads");
key.parentNode.removeChild(key);

如果不明显,这会删除打开下载管理器的热键。您可以在此处查看所有密钥:http://mxr.mozilla.org/mozilla2.0/source/browser/base/content/browser-sets.inc。这适用于 Mozilla 2.0(即 Firefox 4.0.x)。您可以使用页面顶部的下拉菜单更改树,但我认为这些键或它们的 ID 不会经常更改。

根据您的用例,这可能比捕获“按键”更方便。

【讨论】:

  • 感谢马修的体面答复。有些命令仍然像复制和粘贴一样工作。我试过“key_copy”但没有用。我还尝试获取命令“cmd_copy”并通过设置 disabled=true 来禁用它,但仍然没有。你知道为什么吗?
  • 马修,我认为你已经走到了黑暗的一面。该代码应该足以让插件在 addons.mozilla.org 上立即被拒绝。您可能会在 Webrunner 中使用类似的东西,但我无法想象 extension 应该这样做的正当理由。
  • @Wladimir,你有什么问题!我能理解你不想帮助,却劝阻别人帮助我的心情,真的很恶心!我正在根据这些要求开发此插件供私人使用,而不是供公众使用。
  • @Sara:我总是愿意提供帮助 - 在这种特殊情况下,我只是想指出你应该告诉 你想要实现什么,而不是 如何您想这样做(例如,“我需要阻止用户从我的窗口切换。”比“如何阻止 Alt-Tab 键?”更好,因为阻止 Alt-Tab 是错误的首先解决)。这个答案中的代码几乎肯定不会解决你的问题,不管它是什么;这就是我之前评论的重点。
  • @Matthew Gertner:因为这是一个无法撤消的操作 - 一旦您删除了热键,它就无法恢复。并且在浏览器中杀死下载热键听起来很糟糕。更明智(和可逆)的方法是禁用与热键对应的命令(通过disabled 属性)。但这真的取决于这一切的意义是什么——我们仍然不知道。
猜你喜欢
  • 2012-03-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多