Я предполагаю, что под «Панелью предпочтений» вы на самом деле имеете в виду диалоговое окно Option для вашего дополнения, а не просто один <prefpane>
в пределах <prefwindow>
.Я также предполагаю, что у вас есть options.xul
, который полностью функционален для использования в качестве диалогового окна опций, используя обычную кнопку опций на вкладке дополнения.
Я обнаружил, что были необходимы несколько отличающиеся от показанных выше tazyDevel опцииоткрыть диалоговое окно параметров, чтобы оно выглядело так, как будто оно было открыто на вкладке дополнений.Я не уверен, если это разница с 2012 по 2014 год (когда я написал код ниже), или это просто разница в реализации.Если я правильно помню, когда я писал это, я проверял, как Firefox запускал диалоговые окна параметров, и копировал используемые там параметры.
Я использую следующий код, чтобы открыть диалоговое окно параметров для одногомоих надстроек с помощью кнопки в главном диалоговом окне надстройки (помимо того, что она доступна на вкладке надстроек):
XUL (кнопка, открывающая диалоговое окно параметров):
<button label="Options" id="optionsButtonId"
onclick="myExtension.optionsButton();"
tooltiptext="Open the options window."
hidden="false" />
JavaScript:
/**
* The Options button.
*/
optionsButton : function() {
window.openDialog('chrome://myExtension/content/options.xul', '',
'chrome,titlebar,toolbar,centerscreen,modal');
},
В зависимости от того, как организован ваш код, вам может потребоваться вручную применить некоторые предпочтения и / или иметь наблюдателя (ей) предпочтений, которые распространяют изменения на потребностизнать о них.
myExtension
является заполнителем для всего, что вы используете для вызова вашего добавочного номера.Предполагается, что одна переменная объекта, содержащая функции, является myExtension
тем, что вы используете для идентификации своего содержимого в файле chrome.manifest
.