我想在 Firefox 中禁用 RightClick>Reload 功能。
我知道它不能通过在特定网页上运行的 js 来完成。
如何为浏览器完全禁用它?(假设我可以改变浏览器的行为)
是否可以创建一个手动补丁/插件来在 Firefox 代码库中进行这种更改?
我想在 Firefox 中禁用 RightClick>Reload 功能。
我知道它不能通过在特定网页上运行的 js 来完成。
如何为浏览器完全禁用它?(假设我可以改变浏览器的行为)
是否可以创建一个手动补丁/插件来在 Firefox 代码库中进行这种更改?
您不必重新发明轮子。使用菜单编辑器。我已经使用它很多年了。应该够了。
安装它,打开设置,Main context menu
从下拉列表中选择。找到Reload
并取消选中它。瞧。
浏览器窗口包含三个与重新加载页面相关的<command>
元素Browser:Reload
: 、Browser:ReloadOrDuplicate
、Browser:ReloadSkipCache
(我没有费心弄清楚这些是如何触发的)。第一个是唯一重要的,因为如果禁用其他两个将自动禁用(它们包含相应的<observes>
元素)。因此,您的扩展程序需要在浏览器窗口中运行以下代码:
document.getElementById("Browser:Reload").setAttribute("disabled", "true");
唯一的问题是浏览器窗口本身也将通过onLocationChange()
其进度侦听器的方法禁用/启用此命令(该命令应该为 禁用about:blank
)。我想解决方案是注册你自己的进度监听器在onLocationChange()
方法中做同样的事情(你的监听器应该在浏览器之后调用,因为它是稍后注册的)。
如果您通过 XUL 覆盖执行此操作,则可以完全禁用它:
<command id="Browser:Reload" oncommand=""/>
<command id="Browser:ReloadOrDuplicate" oncommand=""/>
<command id="Browser:ReloadSkipCache" oncommand=""/>
然后你不需要添加一个监听器。