簡體   English   中英

獲取完整的DOM堆棧作為字符串

[英]Get full DOM stack as a string

我想將完整的DOM堆棧作為字符串。 例如,請打開Chrome,按F12並輸入“document.all”。 該對象表示完整的DOM。 我想將此對象轉換為字符串。 在Chrome中,您可以在Web調試器控制台中瀏覽對象,展開各個部分並查看其內容。 有沒有可能將document.all轉換為字符串? 或者類似的解決方案給我完整的DOM堆棧? 我不僅僅想要innerHTML / outerHTML,我想要在當前DOM中定義的所有內容。 有任何想法嗎? 提前致謝...

編輯:好的,我認為我的問題有點令人困惑,對不起。 為了澄清這一點:我想獲得定義的每個對象的 每個屬性 ,包括“document.location”,“document.location.hash”,“window.innerHeight”,“document.body.innerHTML”等內容。通過使用JavaScript。

據我所知,沒有辦法得到每個物體的每一個屬性。

至少在某些瀏覽器(例如Chrome)中,您可以在documentElement (根元素,例如html )上使用outerHTML獲取大部分DOM

var html = document.documentElement.outerHTML;

你必須檢查你的其他目標瀏覽器是否這樣做。 至少,他們在body上會有innerHTML

var bodyHTML = document.body.innerHTML;

但就其他事情而言,我不相信有任何方法可以獲得每個對象的每個屬性。 例如,您可以在window找到如下屬性:

var key;
for (key in window) {
    // ...'key' is the property name, window[key] is the value...
}

...但這只會給你可枚舉的屬性,而不是不可枚舉的屬性。 當然,你必須遞歸對象來獲取它們的屬性(允許你可以通過多種方式訪問​​對象 - 例如, window === window.window而且還有topself等擔心;類似於document.alldocument.forms ,...)。

所以不幸的是,雖然你可以得到很多你正在談論的信息,但我不相信你能得到這一切

您可以使用Object.getOwnPropertyNames自己實現它,它甚至包括不可枚舉的屬性。 我做了一個小例子,展示了如何做到這一點。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM