使用内容脚本中的“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 });
});
我有一个使用 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 });
});