将 sidebar_action 配置为仅对某些站点启用?

Configuring a sidebar_action to be only on for certain sites?

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

例如,假设我将其配置为如果用户导航到 google.com,他们将看到一个侧边栏,让他们可以看到他们已经完成的一些 "previous searches"。

我不希望他们必须单击菜单操作/键盘快捷键才能显示它。我不想无限期地展示它。

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

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

但它们似乎没有涵盖如何有条件地 hide/show 侧边栏。他们只是有点,总是被展示出来。不是我想要的。

有没有办法以这种方式使用侧边栏,或者我应该使用其他方法?

您可以根据清单文件中的权限设置控制何时将您的扩展程序插入当前访问的页面(从而导致您的边栏出现)或不显示

manifest.json

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

在上面的示例中,扩展仅适用于 google.com 以及任何包含单词 event 的域。如果您想定位单词 event 作为路径的一部分出现的域,那么您可以使用类似

的内容
"http://*/*event*/*",

你懂的。

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

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

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

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