0
我需要看到頁面的完全加載和開發的dom,即我的客戶端加載我的頁面後,我希望他們能夠點擊fire狐狸上的按鈕,然後用狐狸會送給我完全開發的dom,所以我可以通過看看發生了什麼。 任何人都可以幫助我指出正確的方向嗎?在Firefox中通過插件訪問完全開發的dom
我需要看到頁面的完全加載和開發的dom,即我的客戶端加載我的頁面後,我希望他們能夠點擊fire狐狸上的按鈕,然後用狐狸會送給我完全開發的dom,所以我可以通過看看發生了什麼。 任何人都可以幫助我指出正確的方向嗎?在Firefox中通過插件訪問完全開發的dom
首先你需要一個函數來判斷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();
希望這會有所幫助!
感謝的人,我願意玩它,我會回發完整版:) – Max