如何使用JavaScript在运行时从Mozilla附加组件中将XUL作为字符串获取?

时间:2012-03-22 18:51:17

标签: javascript firefox firefox-addon xul

我试图在Javascript中将一个窗口的XUL文本作为字符串。我需要在运行时完成它,因为窗口动态地添加/删除UI元素。

我尝试了以下内容:

document.toXML()

document.xml

document.documentElement.toXML()

除此之外。什么都行不通!有人可以帮忙吗?

2 个答案:

答案 0 :(得分:1)

您使用XMLSerializer

new XMLSerializer().serializeToString(document);

答案 1 :(得分:0)

我认为没有函数或字段来获取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内容