2016-06-08 53 views
1

我需要檢查整個窗口對象,以檢查數據實際保存的位置。將整個窗口對象轉換爲字符串

如果我執行window.toString()我得到"[object Window]" 我也試圖與JSON.stringify(window)功能,得到了以下錯誤:

VM18766:1 Uncaught TypeError: Converting circular structure to JSON 

有什麼辦法,我可以得到整個JavaScript對象的內容,包括原型的功能呢?

我需要這個順序,以便我可以在對象文本中搜索特定的內容被保存在一個對象和這個對象的位置。

回答

0

DOM不可能在JSON中序列化,因爲錯誤說它包含循環引用。一個簡單的例子就是每個元素都有一個.children數組,每個子元素都有一個.parent值。這對我來說似乎是XY problem。看看this question這可能有助於你實際嘗試做什麼。

+0

我不想將其轉換爲JSON。我只想看到所有的對象,看看我的數據在哪裏 –

+0

我有一個網站,建立了knockoutJS。並且我想要獲取數據對象的內容 –

+0

@AryehArmon,請你詳細提供你正在嘗試提取的細節,然後我們可以從那裏開始。 –

0

您可以使用第三方庫,如this,看看它是否輸出你想要的。用法:

<script src="circular-json.js"></script> 

而且(例如在您的onload功能)

var CircularJSON = window.CircularJSON; 
var obj = window; 
var str; 

obj.self = obj; 
console.log(CircularJSON.stringify(obj)); 

你也可以只使用

console.log(window); 

檢查對象,並通過在瀏覽器控制檯中的對象進行搜索。

+0

我收到一個錯誤:VM10998:2未捕獲的DOMException:阻止了一個來源於訪問跨源幀的幀(...) –

+0

跟蹤我需要查看整個頁面。但似乎你有某個地方的iFrame和訪問iFrame被阻止(見[這個答案](http://stackoverflow.com/questions/25098021/securityerror-blocked-a-frame-with-origin-from-accessing-一個交叉源框架)) – oberbics

+0

是否有一種方法來搜索整個窗口對象的具體屬性 –

0

這是不可能的,因爲window對象是一個圓形物體

例如,在請求中傳遞的對象有一個循環引用,是這樣的:

var a = {}; 
a.b = a;