使用内容脚本中的“simple-prefs”打开插件的选项页面

Open options page of addon using `simple-prefs` from content script

我有一个使用 simple-prefs. The addon modifies some webpages using PageMod 的插件。

我想向这些网页添加 link,这将打开插件选项。基本上,我需要的是在 Chrome.

中使用的 chrome.extension.getURL('options.html'); 的 Firefox 版本

我尝试了一些老方法。例如,像这样使用 URL:addons://detail/ADDON_ID/preferences。或来自官方文档的 this method 。但其中 none 似乎有效。

我该怎么做?有可能吗?

首先,您不能直接从内容脚本中打开它。您必须使用 port API 从您的内容脚本向您的扩展程序发送一条消息,这在您的内容脚本中看起来像这样:

self.port.emit("openPrefs");

在您引用 PageMod 对象的附加模块中(我假设它保存在 pageMod 变量中),然后您将使用(未记录的)sdk/preferences/utils 模块打开首选项页面:

var self = require("sdk/self");
var { open } = require("sdk/preferences/utils");
pageMod.port.on("openPrefs", function() {
  open({ id: self.id });
});