Закрытие мастера xul из overlay.js - PullRequest
0 голосов
/ 12 июня 2009

При разработке расширения Firefox я создаю окно мастера из overlay.js, используя:

this.wizard = window.openDialog("chrome://firenow/content/wizard.xul", "","chrome, dialog, modal, resizable=no", params);
this.wizard.focus();

Как закрыть мастер из overlay.js? Я должен вызвать его cancel() функцию, но я не могу заставить ее работать!

Ответы [ 3 ]

1 голос
/ 09 октября 2009

Вы открыли мастер модально, поэтому ваш код перестает работать, пока пользователь не отменит мастер. В частности, вы не можете обнаружить объект окна мастера до тех пор, пока он не будет закрыт, и в этот момент фокусировка не будет иметь никакого эффекта! Если вам действительно нужно открыть мастер модально, вы все равно сможете его закрыть, но вам придется добавить код, закрывающий мастер, в самом мастере.

1 голос
/ 13 июня 2009

this.wizard будет объектом nsIDOMWindow, но также реализует методы для nsIDOMWindowInternal, поэтому вы можете просто вызывать this.wizzard.close ()

0 голосов
/ 30 июня 2009

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

wizard.style.display = 'none';

Если вы параноик, вы также можете удалить все дочерние узлы wizard в дополнение к его скрытию.

...