所以我最近决定创建一个我一直在考虑的 firefox扩展,但之前没有任何经验。我阅读了官方教程并认为插件sdk 似乎很适合我,但我似乎遇到了麻烦。
我想要做的是创建选项弹出式对话框,类似于按alt-tools-options时看到的对话框。也就是说,上部的标题和关闭按钮的边框,以及窗口内的更大区域,我可以在其中定义“直观”(用户习惯使用皮肤的默认元素)GUI。 顶部的标签(一般,隐私安全等)不是我真正需要的,但也不会受到伤害。
所以问题在于,从我的搜索中,当你使用addon sdk时,你不应该使用具有这些元素的XUL,而是你似乎应该使用 HTML in a panel创建一些自定义的东西。 即可。在使用它时,我认为不可能创建类似于真实选项菜单的顶栏,尽管如果我错了,我不介意纠正。
之前我遇到过类似的问题,我希望工具栏中的下拉菜单类似于默认菜单,我解决了这个问题,感谢:How to add a dropdown menu to a firefox addon sdk powered addon toolbar button?。 可能值得注意的是,打开选项对话框的按钮是如此处所述创建的菜单项之一。 我正在考虑可能(也就是我不确定)使用类似于此的东西,但遗憾的是我不知道如何创建一个“单独”(可拖动)弹出窗口,我可以使用它。
如果可能的话,我宁愿在那里存在一个解决方案,但是如果有人知道它确实是不可能的,那么请发布这样的帖子,我可以毫不后悔地放弃,而只是制作某种自定义HTML面板:)< / p>
tldr: 有没有办法在使用addon sdk进行开发时,在firefox中使用alt-tools-options打开的选项窗口中创建类似(样式)的弹出对话框?
答案 0 :(得分:1)
基本上,你不应该,至少不是SDK。
但话说回来,它仍有可能,但你需要自己做很多事情:
chrome:
包,因为SDK内部使用的resource:
URI无法正常用于XUL窗口。创建Chrome Registration(chrome.manifest
文件)。自Firefox 24 IIRC以来,SDK支持此功能。<prefwindow>
绑定。查看其他扩展程序或Firefox Options dialog(具有多个叠加层的巨大事物,因此请更好地查看其他扩展程序)。将XUL文件放在chrome/content/<somefile>.xul
中。这将对应chrome://<registered_package_from_1>/content/<somefile>.xul
。em:optionsURL
放入其install.rdf
,以使附加组件管理器自动创建将打开指定URL的“首选项”按钮,但在SDK中,这是从package.json
如果我没有弄错的话,我无法将optionsURL
放入package.json
。但你可以做其他事情,比如使用simple-prefs
type: control
按钮在about:addons
页面中有一个按钮,或者将它添加到某个浏览器菜单中(这需要另一堆XUL) - 修改,require("chrome")
代码。)。要实际打开对话框,您可以使用window/utils.openDialog
。如您所见,不是一项简单的任务......
如果您只是在首选项之后,请考虑使用simple-prefs
。