Components.classes给出“错误:拒绝权限访问属性'类'”

时间:2013-04-19 14:42:25

标签: javascript dom xml-serialization

我正在尝试使用概述here的方法将我的DOM序列化为XML文件。

然而,行

var oFOStream = Components.classes["@mozilla.org/network/file-output-stream;1"].createInstance(Components.interfaces.nsIFileOutputStream);

导致错误

Error: Permission denied to access property 'classes'

在Mozilla Firefox 20.0上使用Firebug。我可能就是那个

mozilla.org/network/file-output-stream

是一个糟糕的链接。但是,当我尝试

Components.utils.import("resource://gre/modules/FileUtils.jsm");     
var oFOStream = new FileUtils.File(".");

我收到了消息

Error: Permission denied to access property 'utils'

resource://gre/modules/FileUtils.jsm

是合法链接。

有没有更好的方法将DOM(或最好是其中的子树)序列化为XML文件?

1 个答案:

答案 0 :(得分:1)

当你在JS XPCOM组件(或JS模块)内部使用新的XMLSerializer()时,你使用的方法只是nescesarry。“

您可以尝试使用:

var oSerializer = new XMLSerializer();
var sXML = oSerializer.serializeToString(doc);

首先将其序列化为字符串。

您可以在第2章找到更多信息here