contextMenus
具有enabled
属性,可以设置为true或false。
contextMenus.update()
可用于更新属性。
我想根据条件启用或禁用上下文菜单(少数上下文之一)。
显示上下文菜单后会触发 contextMenus.onClicked.addListener()
,因此没有必要使用update更改enabled
属性(基于选项卡URL)。
有没有办法在显示之前更改enabled
属性? (比如popupshowing
事件在Firefox中)
更新:
注意:此时我正在寻找任何控制上下文菜单的方法(基于标签网址),然后再显示它。这里列出的案例只有一个 需要这种方法的情况的例子。
我正在寻找一种直接的方法,而不是通过听所有鼠标事件来进行黑客攻击。此外,使用一系列异步函数会产生不可预测的结果。
在这种情况下,实际contexts
为tab
(只有Firefox 53。* +支持)。
为此,我不知道任何鼠标事件监听器。
将脚本注入上下文是问题的核心。
Firefox(& Chrome)设计可防止脚本注入某些位置,例如:addons.mozilla.org,about:*或Chrome Web Store;等
由于无法使用许多API,因此Firefox上的问题更为明显 (您可以阅读我的评论:WebExtension content script not working on mozilla.org sites)
目前,在从上下文菜单启动操作后,我被迫运行一系列功能来检查页面是否被阻止。
我正在寻找一种方法来禁用某些扩展上下文菜单项根据选项卡的URL。换句话说,在addons.mozilla.org
上禁用扩展程序的上下文菜单项有一些标签监听器,但它们似乎不适合目的,即(tabs.onCreated
:在创建标签时触发。请注意,此事件触发时可能未设置标签的URL。)
PS。我正在开发Firefox扩展程序,因为Firefox& Chrome共享相似的API,两者都使用enable
属性,问题已被两个浏览器标记。我重新订购了标签,将Firefox列为主要目标
PS2。 Stack Overflow将其置于Chrome扩展程序之下,因此我删除了Chrome参考标记
PS3。投票在不知道所有事实的情况下提前结束一个问题会产生相反的效果。