Как я могу получить XUL как строку из надстройки Mozilla во время выполнения с использованием JavaScript? - PullRequest
1 голос
/ 22 марта 2012

Я пытаюсь получить текст XUL окна в виде строки в Javascript. Мне нужно сделать это во время выполнения, потому что окно динамически добавляет / удаляет элементы пользовательского интерфейса.

Я пробовал следующее:

document.toXML()

document.xml

document.documentElement.toXML()

Среди прочего. Ничего не работает! Кто-нибудь может помочь?

Ответы [ 2 ]

1 голос
/ 23 марта 2012

Вы используете XMLSerializer :

new XMLSerializer().serializeToString(document);
0 голосов
/ 23 марта 2012

Я не думаю, что есть функция или поле для получения текста xul, но вы можете обойти это, прочитав содержимое из xul url

function getContentFromURL(url) {
  var Cc = Components.classes;
  var Ci = Components.interfaces;
  var ioService = Cc['@mozilla.org/network/io-service;1'].getService(Ci.nsIIOService);
  var scriptableStream = Cc['@mozilla.org/scriptableinputstream;1'].getService(Ci.nsIScriptableInputStream);

  var channel = ioService.newChannel(url, null, null);
  var input = channel.open();
  scriptableStream.init(input);
  return scriptableStream.read(input.available());
}

, чтобы вы могли вызвать getContentFromURL (document.location) для получения содержимого XUL

...