【发布时间】:2016-01-20 11:20:07
【问题描述】:
我正在使用 Firefox 插件 SDK 来创建我的插件。
我使用simple-prefs 作为选项,但是当用户单击 Firefox 插件管理器中的“设置”按钮时,如何打开 自定义 页面?
感谢您的帮助!
【问题讨论】:
标签: javascript firefox firefox-addon firefox-addon-sdk
我正在使用 Firefox 插件 SDK 来创建我的插件。
我使用simple-prefs 作为选项,但是当用户单击 Firefox 插件管理器中的“设置”按钮时,如何打开 自定义 页面?
感谢您的帮助!
【问题讨论】:
标签: javascript firefox firefox-addon firefox-addon-sdk
据我所知,你不能。如果您有一些简单首选项系统无法表达的首选项,您可以在附加组件的首选项中添加一个按钮,该按钮可以在新选项卡或窗口中打开自定义页面。见control 输入:https://addons.mozilla.org/en-US/developers/docs/sdk/latest/modules/sdk/simple-prefs.html
我的建议是尽可能使用 simple-prefs,因为它们使用 Firefox Sync 在计算机和设备之间同步。
【讨论】:
实际上,您可以完全按照自己的意愿行事。当您点击插件管理器中的选项按钮时,这将打开您插件的首选项页面 - 它取代了打开插件关于页面的操作。
此解决方案的功劳归于Noitidart。
这是一个无 JavaScript 的解决方案,信不信由你。 The docs are here。您必须在 install.rdf 中做两件事:
<em:optionsURL>resource://myAddonID/data/my.html</em:optionsURL>
<em:optionsType>3</em:optionsType>
Noitidart actually created a sample addon 来说明这一点。对于完成所有工作的install.rdf 中的这两行代码,代码全部为空白除了。
Firefox 为您完成所有选项卡处理。
顺便说一句,there are three options 代表<em:optionsType>
1 在对话框中打开 optionsURL 2 选项显示在插件管理器中3 在新选项卡(如果应用程序支持)或对话框中打开 optionsURL此外,在docs for simple-prefs 的底部有control,您将其作为首选项放在 package.json 中,就像所有其他首选项一样(所有这些信息都直接来自页):
当用户点击按钮时,监听 on() 的函数 调用此首选项的函数。
这种类型需要一个名为“label”的强制属性,它是 作为字符串提供。它用于标记按钮。
因此,使该按钮出现在插件选项区域中的代码(作为首选项以及它们在 json 文件中的 preferences 对象中的其余部分)如下所示:
{
"type": "control",
"label": "Click me!",
"name": "sayHello",
"title": "Say Hello"
}
在您的 main.js 中,执行此操作以打开自定义页面(该页面位于您的 data 目录中;或者您可以在此处使用常规网页地址):
var data = require("sdk/self").data;
var sp = require("sdk/simple-prefs");
sp.on("sayHello", function() {
tabs.open( data.url("myCustomPage.html") ); //<======The KEY
});
请记住,"name" 是“消息”的名称,并且在 package.json 文件和 main.js 文件中都需要相同。
试试吧!这很简单,而且效果很好!
【讨论】: