0

我想在 Firefox 中禁用 RightClick>Reload 功能。

我知道它不能通过在特定网页上运行的 js 来完成。

  1. 如何为浏览器完全禁用它?(假设我可以改变浏览器的行为)

  2. 是否可以创建一个手动补丁/插件来在 Firefox 代码库中进行这种更改?

4

3 回答 3

0

您不必重新发明轮子。使用菜单编辑器。我已经使用它很多年了。应该够了。

安装它,打开设置,Main context menu从下拉列表中选择。找到Reload并取消选中它。瞧。

于 2012-08-02T21:58:53.123 回答
0

浏览器窗口包含三个与重新加载页面相关的<command>元素Browser:Reload: 、Browser:ReloadOrDuplicateBrowser:ReloadSkipCache(我没有费心弄清楚这些是如何触发的)。第一个是唯一重要的,因为如果禁用其他两个将自动禁用(它们包含相应的<observes>元素)。因此,您的扩展程序需要在浏览器窗口中运行以下代码:

document.getElementById("Browser:Reload").setAttribute("disabled", "true");

唯一的问题是浏览器窗口本身也将通过onLocationChange()进度侦听器的方法禁用/启用此命令(该命令应该为 禁用about:blank)。我想解决方案是注册你自己的进度监听器在onLocationChange()方法中做同样的事情(你的监听器应该在浏览器之后调用,因为它是稍后注册的)。

于 2012-08-02T07:15:48.917 回答
0

如果您通过 XUL 覆盖执行此操作,则可以完全禁用它:

<command id="Browser:Reload" oncommand=""/>

<command id="Browser:ReloadOrDuplicate" oncommand=""/>

<command id="Browser:ReloadSkipCache" oncommand=""/>

然后你不需要添加一个监听器。

于 2012-08-02T17:29:48.097 回答