将sidebar_action配置为仅在某些网站上启用?

时间:2018-12-09 06:45:46

标签: javascript firefox firefox-addon firefox-sidebar

我想创建一个firefox扩展,当用户导航到某些网页时,该扩展允许边栏自动显示。

例如,假设我进行了配置,因此,如果用户导航到google.com,他们将看到一个侧边栏,使他们可以看到他们完成的一些“以前的搜索”。

我不希望他们单击​​菜单操作/键盘快捷键来显示它。而且我不想无限期地显示它。

我一直在查看以下链接以了解如何使用侧边栏:

https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/user_interface/Sidebars

https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/sidebar_action

https://github.com/mdn/webextensions-examples/tree/master/annotate-page

但是它们似乎没有涵盖如何有条件地隐藏/显示侧边栏。他们只是有点,总是显示。不是我真正想要的。

是否可以通过这种方式使用边栏?还是应该使用其他方法?

2 个答案:

答案 0 :(得分:6)

您可以根据清单文件中的权限设置控制扩展名何时插入到当前访问的页面中(从而导​​致您的侧边栏出现)

manifest.json

...
"permissions": [
  ... 
  "http://*.google.com/",
  "http://*event*/",
  ...
],

在上面的示例中,扩展名仅在google.com以及包含单词event的任何域上都有效。如果您想定位event一词出现在路径中的域,则可以使用类似

的方法
"http://*/*event*/*",

您明白了。

有关更多信息,请阅读Google's Extension Development - Declare Permissions

答案 1 :(得分:0)

这可以通过指定主机来实现,该主机可以是已知字符串列表(例如“ geolocation”)中的一种,也可以是一种允许访问一个或多个主机的匹配模式。

以下是清单文件的权限部分的示例:

"permissions": [
  "tabs",
  "bookmarks",
  "http://www.blogger.com/",
  "http://*.google.com/",
  "unlimitedStorage"
],