2011-09-23 77 views
0

我需要看到頁面的完全加載和開發的dom,即我的客戶端加載我的頁面後,我希望他們能夠點擊fire狐狸上的按鈕,然後用狐狸會送給我完全開發的dom,所以我可以通過看看發生了什麼。 任何人都可以幫助我指出正確的方向嗎?在Firefox中通過插件訪問完全開發的dom

回答

1

首先你需要一個函數來判斷DOM是否準備就緒。由許多Javascript框架提供的功能,但如果您需要純粹的js實現,則需要refer this
當DOM準備好時,該按鈕被啓用供用戶點擊。
然後你可能有一個函數來將DOM樹序列化爲一個字符串。由於加載和保存DOM尚未在Mozilla中實現,請閱讀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(); 

希望這會有所幫助!

+0

感謝的人,我願意玩它,我會回發完整版:) – Max