Переменная Javascript, используемая в расширении Firefox - PullRequest
1 голос
/ 30 октября 2011

У меня есть: Я хотел бы узнать о расширениях Firefox, поэтому я скачал zip-файл, содержащий пример «Hello World», из http://kb.mozillazine.org/Getting_started_with_extension_development.

В hello.xul у меня есть:

<hbox align="center">
<description flex="1">text in box</description>
</hbox>

(выдает всплывающее окно с текстом "text in box")

В overlay.js у меня есть:

var HelloWorld = {
  onLoad: function() {
    // initialization code
    this.initialized = true;
  },

  onMenuItemCommand: function() {
    window.open("chrome://helloworld/content/hello.xul", "", "chrome");
    var a = "text I want in box";
  }
};

window.addEventListener("load", function(e) { HelloWorld.onLoad(e); }, false); 

Вопрос : Как использовать переменную a в файле javascript, чтобы содержимое этой переменной было «напечатано» в поле?

Ответы [ 2 ]

2 голосов
/ 30 октября 2011

Вам необходимо передать параметры в новое окно.Пример показан здесь

1 голос
/ 30 октября 2011

Во-первых, пожалуйста, прочтите это: https://developer.mozilla.org/en/DOM/window.openDialog#Passing_extra_parameters_to_the_dialog

Вы должны использовать параметры для передачи значения из одного окна в другое окно (Dialog Concept).

Это обеспечивает простой способ передачи значений черезXUL файлы.

Для вашей проблемы вы можете сделать что-то подобное в xxx.xul.Это откроет hello.xul вместе с дополнительным параметром returnValues:

var returnValues = { out: null };
window.openDialog("hello.xul", "tree", "modal", returnValues);

Примечание: модальное значение обязательно.

Далее в вашем xxx.xul сохраните все значения (давайте назовем его y), который вы хотите передать hello.xul, как показано ниже:

window.arguments[0].out = y

Примечание window.argument[0] относится к returnValues ​​

Теперь вы можете получить доступ к значениям y (которые являются именамив вашем случае) в hello.xul следующим образом:

var labels = returnValues.out;

В основном,

Вы передаете параметр дочернему окну во время его открытия.

Затем в дочернем окне заполните параметр значениями, которые хотите передать обратно в родительское окно, а затем закройте дочернее окно.

Теперь вернитесь в родительское окно и получите доступ к параметру, который вы передали вchild и содержит информацию, обновляемую дочерним окном.

...