通过Firefox中的插件访问完全开发的dom

时间:2011-09-23 14:06:08

标签: dom firefox-addon

我需要看到一个页面的完全加载和开发的dom,即在我的客户端加载我的页面之后我希望他们能够点击火狐上的按钮然后火狐将发送给我完全开发的dom所以我可以看一看,看看那里发生了什么。 任何人都可以帮我指出正确的方向吗?

1 个答案:

答案 0 :(得分:1)

首先,您需要一个函数来了解DOM是否已准备就绪。许多Javascript框架提供的功能,但如果您需要纯js实现,则refer this 当DOM准备就绪时,启用该按钮以供用户点击。
然后,您可能具有将DOM树序列化为字符串的功能。由于在Mozilla中尚未实现加载和保存DOM,请阅读this MDN article以了解您的需求 现在,您可以将已保存的DOM发送到Web服务。

//Code grabbed mostly from MDN article linked
var req = new XMLHttpRequest();
req.open("GET", "chrome://passwdmaker/content/people.xml", false); 
req.send(null);
var dom = req.responseXML;

var serializer = new XMLSerializer();
var foStream = Components.classes["@mozilla.org/network/file-output-stream;1"]
              .createInstance(Components.interfaces.nsIFileOutputStream);   
var file = Components.classes["@mozilla.org/file/directory_service;1"]
         .getService(Components.interfaces.nsIProperties)
         .get("ProfD", Components.interfaces.nsILocalFile);//get profile folder  
file.append("extensions");   // extensions sub-directory
file.append("{5872365E-67D1-4AFD-9480-FD293BEBD20D}");//GUID of your extension
file.append("myXMLFile.xml");   // filename
foStream.init(file, 0x02 | 0x08 | 0x20, 0664, 0);//write, create, truncate
serializer.serializeToStream(dom, foStream, "");//remember, dom is the DOM tree
foStream.close();

希望这会有所帮助!