为除某些网站外的所有网站创建上下文菜单条目
Create context Menu entry for all websites excluding some
我正在开发一个带有插件SDK的Firefox插件,我想在除谷歌图像外的所有网站上包含图像的上下文菜单项,为此我将添加不同的上下文菜单项。
var cm = require("sdk/context-menu");
cm.Item({
label: "LABEL",
context: [
cm.URLContext(["*.images.google.*"]),
cm.SelectorContext("img")
],
contentScript: googleContentScript ,
onMessage: ...
});
cm.Item({
label: "LABEL",
context: [
cm.URLContext(["*"]),
cm.SelectorContext("img")
],
contentScript: otherContentScript ,
onMessage: ...
});
对于第一个URLContext,我想捕获所有谷歌图像,无论TLD (.com, .co)。英国……)。对于第二个,我希望URLContext能够应用于所有不在第一个中的url。
显然这不是目前正在发生的事情。
对于负模式,URLSelector
的匹配模式有些有限,很难处理。
你必须合理的选择:
- 您可以在您的内容脚本中实现
self.on("context", function() ...)
。返回false
将使菜单项不显示。
每当要显示上下文菜单时,将在内容脚本中发出一个名为"context"的特殊事件。如果您为此事件注册了一个侦听器函数,并且它返回true,则与侦听器内容脚本关联的菜单项将显示在菜单中。
- 如果您的目标是Firefox 29+,那么使用
PredicateContext
可能更容易(维护)并且也产生更好的性能(因为它不需要启动和执行内容脚本)。
相关文章:
- 将函数的上下文应用于javascript变量
- 如何识别我的网站中的慢速设备
- Twitter Bootstrap typeahead:使用“this”获取上下文/调用元素
- 用Javascript更改我网站上的字体大小
- 有任何可能将facebook实时信使整合到一个网站中
- 使用JQuery的动态上下文菜单
- 将电视直播频道从网站嵌入我的网站
- Windows 8固定的网站互动程序
- 门户网站:当地时间有多有用
- 正在删除node.js中已验证的网站
- 为什么在这个网站上不能通过JS访问元素
- 如何访问UIWebView'的子窗口上下文
- 需要使用谷歌应用程序脚本列出谷歌域下的所有网站
- 为什么只有工厂在棱角分明的网站上被提及
- 从应用程序脚本检查谷歌网站访问权限
- 使用谷歌网站翻译器自动翻译网页
- 使用node.js制作网站
- 在自己的网站上禁用chrome上下文菜单选项
- 具有基于上下文所有者的动态广告展示的网站
- 为除某些网站外的所有网站创建上下文菜单条目