2012-04-24 16 views
193

我正在做一個console.log語句,以便記錄javascript對象。我想知道是否有辦法,一旦完成 - 將該對象作爲JavaScript代碼複製。我想要做的是將一個使用ajax創建的對象轉換爲靜態JavaScript對象,以便在沒有服務器的情況下可以在本地運行文件。我在鉻檢查器窗口中包含了該對象的屏幕截圖,以便您可以看到我正在嘗試執行的操作。 enter image description hereJavascript/Chrome - 如何從webkit檢查器中複製對象,代碼爲

+0

嘗試使用Firefox和選項.toSource()。這很容易 – chepe263 2012-04-24 20:18:33

回答

473
  1. 右鍵單擊Chrome控制檯中的對象,然後從上下文菜單中選擇Store as Global Variable。它會返回類似temp1的變量名稱。

  2. Chrome也有copy()方法,因此控制檯中的copy(temp1)應該將該對象複製到剪貼板。

Copy Javascript Object in Chrome DevTools

注意遞歸對象:如果你想複製一個遞歸的對象,你會得到[object Object]。這是可以預料的。

+1

在chrome中返回undefined版本49.0.2623.87(64位)?爲什麼>? – 2016-08-19 06:33:56

+5

@PardeepJain - 這是從copy()方法預計的,因爲沒有什麼可以返回的。數據應該位於剪貼板中。 – Carl 2016-08-23 17:57:52

+9

這只是給我'[object Object]'。 – Ullallulloo 2017-05-24 20:58:44

34

嘗試JSON.stringify()。複製結果字符串。

+6

我不明白這是如何工作的,除非你修改記錄它的代碼。 – iConnor 2013-11-10 21:27:28

+1

出於某種原因,當我嘗試對一個keyboardevent進行字符串化時,這種方式不起作用... – 2017-02-15 14:25:40

19

您可以使用copy(JSON.stringify(Object_Name))將對象複製到剪貼板;在控制檯中。

例如: - 將下面的代碼粘貼到您的控制檯中,然後按回車鍵,然後嘗試粘貼(ctrl + V)一些地方,您將獲得{「name」:「Daniel」,「age」:25}

var profile = { 
    name: "Daniel", 
    age: 25 
}; 

copy(JSON.stringify(profile)); 
+6

不適用於DOM節點,窗口或任何其他物體,它是圓形的 – 2016-12-27 03:18:40

+0

迄今爲止最簡單的解決方案,適用於大而簡單的對象。 – Hersheezy 2017-01-18 15:30:23

20

現在,您可以在Chrome通過右擊對象,然後選擇 「存儲爲全局變量」 做到這一點:http://www.youtube.com/watch?v=qALFiTlVWdg

enter image description here

+1

從版本39.0.2171.95開始,使用Chrome檢查Android設備時,「存儲爲全局變量」選項不可用。 – 2015-01-13 00:20:11

5

如果您已經通過請求發送了對象,則可以從Chrome - >網絡選項卡複製該對象。

請求負載 - >查看源代碼

enter image description here

enter image description here

+1

複製分析後的有效載荷後,你可以從https://jsonformatter.curiousconcept格式化json。 COM /。 – 2016-10-20 08:56:53

5

遵循以下步驟:

  1. 輸出與代碼的console.log,像這樣的對象:控制檯.log(myObject)
  2. 右鍵單擊對象並單擊「Store as G lobal對象「。 Chrome會在此處顯示變量的名稱。我們假設它叫做「temp1」。
  3. 在控制檯中輸入:JSON.stringify(temp1)
  4. 此時,您將看到整個JSON對象爲可以複製/粘貼的字符串。
  5. 此時您可以使用在線工具如http://www.jsoneditoronline.org/來優化字符串。
+0

如果對象很大,使用JSON.stringify(temp1)的步驟可能會影響較長時間的執行。 – heroin 2016-07-10 13:41:02

+0

獲取錯誤'無法保存到臨時變量.' – JoeTidee 2017-09-27 15:13:31

0

使用「存儲爲全局變量」有效,但它只獲取對象的最終實例,而不是對象被記錄的時刻(因爲您可能想將對象的更改與他們發生)。爲了使這個對象在其確切點被修改,我利用這個時間......

function logObject(object) { 
    console.info(JSON.stringify(object).replace(/,/g, ",\n")); 
} 

說它是這樣的...

logObject(puzzle); 

您可能想要刪除的.replace( /./g,「,\ n」)正則表達式,如果你的數據碰巧有逗號。