2014-09-15 2 views
3

Я хочу, чтобы пользователь загрузил изображение (в папку аддона) в окне настроек моего аддона.Как поместить элемент ввода файла в панель предпочтений аддона Firefox?

Это мое текущий 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

Вы можете загрузить свой код ти GitHub и связать меня. Похоже, вы делаете префикс xul. Вы хотите попробовать встроенные параметры? Его очень легко сделать эти диалоги файлов и т. Д. – Noitidart

+0

У меня не так много больше. Я пока ничего не делаю с изображением. –

+0

Что вы хотите сделать с изображением после выбранного? – Noitidart

ответ

7

Ok здесь полный аддон пример, который показывает вам это сделать:

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="[email protected]_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(\'[email protected]_upload\') == `' + Services.prefs.getCharPref('[email protected]_upload'))"> 
     Select image to upload 
    </setting> 
</vbox> 

Таким образом, после установки аддона перейти на панель аддонов. Сдвиг Ctlr A.

затем нажмите на опции. Вы увидите это:

Теперь нажмите кнопку Обзор и выберите файл, а затем он подскажет вам, я использовать атрибут oninputchanged видел в options.xul выше, чтобы предупредить значение. Он сохраняет путь изображения до предпочтительного имени [email protected]_upload, вы можете изменить его на любое имя, которое вы хотите, но сохраните префикс extensions..

Теперь вы можете получить доступ к значению в команде oninputchanged с this.value или из любого места, любой аддон, или в любом месте, с Services.prefs.getCharPref('[email protected]_upload')

Смежные вопросы