我想让用户在我的插件的偏好设置窗口中上传图片(到插件的文件夹)。
这是我目前的prefpane
:
<prefpane id="tpt-pane" label="Settings">
<preferences>
<preference id="pref_upload" name="addonname.upload" type="file"/>
</preferences>
<hbox align="center">
<label control="upload" value="The file: "/>
<input type="file" preference="pref_upload" id="upload" />
</hbox>
</prefpane>
我有什么方法可以做到这一点(使用解决方法)?
答案 0 :(得分:7)
好的,这是一个完整的插件示例,向您展示:
GitHub :: Noitidart / PortableTester
单击XPI并下载,然后将其拖到firefox上进行安装。或者只需使用AMO :: GitHub Extension Installer从上面的repo链接安装扩展程序
所以我做的是创建一个options.xul
文件。在install.rdf
中,请确保您没有将<em:optionsType>
设置为任何内容。
然后options.xul
的内容就是:
<?xml version="1.0" ?>
<vbox xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<setting title="Image Upload" type="file" pref="extensions.PortableTester@jetpack.image_upload" oninputchanged="alert('path of image is:' + this.value + '\nyou can access this image from your addon or anywhere else by getting the pref value so like this:\n`Services.prefs.getCharPref(\'extensions.PortableTester@jetpack.image_upload\') == `' + Services.prefs.getCharPref('extensions.PortableTester@jetpack.image_upload'))">
Select image to upload
</setting>
</vbox>
所以在安装插件之后转到插件面板。 Ctlr转移A.
然后点击选项。你会看到这个:
现在点击浏览并选择一个文件,然后它会提示您,我使用上面oninputchanged
中显示的options.xul
属性来提醒值。它将图像的路径保存到名为extensions.PortableTester@jetpack.image_upload
的首选项,您可以将其更改为您想要的任何名称,但保留extensions.
前缀。
您现在可以使用oninputchanged
访问this.value
命令中的值,也可以使用Services.prefs.getCharPref('extensions.PortableTester@jetpack.image_upload')