Javascript / Chrome - Cara menyalin objek dari inspektur webkit sebagai kode


493

Saya melakukan pernyataan console.log di javascript saya untuk mencatat objek javascript. Saya bertanya-tanya apakah ada cara, setelah selesai - untuk menyalin objek itu sebagai kode javascript. Apa yang saya coba lakukan adalah mengonversi objek yang dibuat menggunakan ajax untuk mem-parsing umpan xml menjadi objek javascript statis sehingga file dapat berjalan secara lokal, tanpa server. Saya telah menyertakan tangkapan layar objek di jendela inspektur krom sehingga Anda dapat melihat apa yang saya coba lakukan.masukkan deskripsi gambar di sini


1
Coba gunakan firefox dan opsi .toSource (). Lebih mudah
chepe263

Jawaban:


1250
  1. Klik kanan objek di konsol Chrome dan pilih Store as Global Variabledari menu konteks. Ini akan mengembalikan sesuatu seperti temp1nama variabel.

  2. Chrome juga memiliki copy()metode, jadi copy(temp1)di konsol harus menyalin objek itu ke clipboard Anda.

Salin Objek Javascript di Chrome DevTools

Catatan tentang Objek Rekursif: Jika Anda mencoba menyalin objek rekursif, Anda akan mendapatkannya [object Object]. Jalan keluarnya adalah copy(JSON.stringify(temp1)), objek akan sepenuhnya disalin ke clipboard Anda sebagai JSON yang valid, sehingga Anda dapat memformatnya sesuai keinginan, menggunakan salah satu dari banyak sumber daya.


3
kembali tidak terdefinisi dalam Versi chrome 49.0.2623.87 (64-bit)? kenapa>
Pardeep Jain

10
@PardeepJain - yang diharapkan dari metode copy () karena tidak ada yang kembali. Data harus di clipboard Anda.
Carl

35
Ini hanya memberi [object Object]saya.
Ullallulloo

1
@Ullallulloo coba logout dengan JSON.stringify seperti ini: stackoverflow.com/a/4293047/622287
kevnk

3
ini hanya berfungsi jika Anda memiliki objek JS yang dangkal, jika Anda memiliki objek mendalam rekursif maka Anda akan mendapatkan [Object Object] - yang diharapkan
Marwen Trabelsi

62

Coba JSON.stringify(). Salin string yang dihasilkan. Tidak berfungsi dengan objek yang berisi referensi melingkar.


7
Saya tidak melihat cara kerjanya kecuali Anda memodifikasi kode yang mencatatnya.
iConnor

16
Saya mendapatkanTypeError: Converting circular structure to JSON
Tony Brasunas

40

Anda dapat menyalin objek ke papan klip menggunakan copy (JSON.stringify (Object_Name)); di konsol.

Misalnya: - Salin & Tempel kode di bawah ini di konsol Anda dan tekan ENTER. Sekarang, coba tempel (CTRL + V untuk Windows atau CMD + V untuk mac) di tempat lain dan Anda akan mendapatkan {"name": "Daniel", "age": 25}

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

copy(JSON.stringify(profile));

14
Tidak bekerja dengan simpul DOM, jendela atau objek lain yang melingkar
Carles Alcolea

Sejauh ini solusi termudah untuk objek besar tapi sederhana.
Hersheezy

solusi termudah
Anandhukrishna VR

26

Anda sekarang dapat melakukan ini di Chrome dengan mengklik kanan pada objek dan memilih "Simpan sebagai Variabel Global": http://www.youtube.com/watch?v=qALFiTlVWdg

masukkan deskripsi gambar di sini


2
Pada Versi 39.0.2171.95, opsi "Simpan sebagai Variabel Global" tidak tersedia saat memeriksa perangkat Android dengan Chrome.
Walter Roman

1
@ David Calhoun, saya memilih jawaban Anda. Sepertinya jawaban Anda diposting 12 Juni 2014 dan yang diterima adalah 5 Agustus 2014, sebagian besar mengambil apa yang Anda miliki. Saya harus mengakui bahwa ia menyebutkan temp1 di mana jawaban Anda hanya menunjukkannya di video Anda, jadi mungkin itu sebabnya jawaban lain diterima. Semoga sukses.
PatS

13

Ikuti langkah-langkah berikut:

  1. Keluarkan objek dengan console.log dari kode Anda, seperti: console.log (myObject)
  2. Klik kanan pada objek dan klik "Simpan sebagai Objek Global". Chrome akan mencetak nama variabel pada saat ini. Mari kita asumsikan itu disebut "temp1".
  3. Di konsol, ketik: JSON.stringify(temp1).
  4. Pada titik ini Anda akan melihat seluruh objek JSON sebagai string yang dapat Anda salin / tempel.
  5. Anda dapat menggunakan alat online seperti http://www.jsoneditoronline.org/ untuk membuat string Anda cantik saat ini.

Langkah dengan JSON.stringify (temp1) dapat memengaruhi eksekusi yang lama jika objek besar.
heroin

@ JoTidee Saya punya masalah yang sama, tapi saya membuat debuggerpernyataan dan kemudian mengambil var saya langsung dari konsol di breakpoint.
Tony Brasunas


0

Menggunakan "Store as a Global Variable" berfungsi, tetapi ia hanya mendapatkan instance akhir objek, dan bukan saat objek sedang dicatat (karena Anda mungkin ingin membandingkan perubahan ke objek saat terjadi). Untuk mendapatkan objek tepat pada saat dimodifikasi, saya menggunakan ini ...

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

Sebut saja seperti itu ...

logObject(puzzle);

Anda mungkin ingin menghapus regex .replace (/./g, ", \ n") jika data Anda memiliki tanda koma di dalamnya.


0

Begitu,. Saya punya masalah ini ,. kecuali saya mendapat [objek objek]

Saya yakin Anda bisa melakukan ini dengan rekursi tetapi ini berhasil bagi saya:

Inilah yang saya lakukan di konsol saya:

var object_that_is_not_shallow = $("all_obects_with_this_class_name");
var str = '';
object_that_is_not_shallow.map(function(_,e){
    str += $(e).html();
});
copy(str);

Lalu tempel ke editor Anda.


0

Ini akan membantu meringkas objek dalam dengan meninggalkan objek rekursif Windowdan Node.

function stringifyObject(e) {
  const obj = {};
  for (let k in e) {
    obj[k] = e[k];
  }

  return JSON.stringify(obj, (k, v) => {
    if (v instanceof Node) return 'Node';
    if (v instanceof Window) return 'Window';
    return v;
  }, ' ');
}


0

Tambahkan ini ke konsol Anda dan jalankan

copy(JSON.stringify(foo));

Ini menyalin JSON Anda ke clipboard

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.