Javascript Components.classes给出了;错误:访问属性的权限被拒绝';类别'&引用;

Javascript Components.classes给出了;错误:访问属性的权限被拒绝';类别'&引用;,javascript,dom,xml-serialization,Javascript,Dom,Xml Serialization,我正在尝试使用所概述的方法将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

我正在尝试使用所概述的方法将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'

这是一个合法的联系


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

只有在“在JS XPCOM组件(或JS模块)中,新的XMLSerializer()不可用”时,才使用nescesarry方法

您可以尝试使用:

var oSerializer = new XMLSerializer();
var sXML = oSerializer.serializeToString(doc);
首先将其序列化为字符串

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

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