Javascript / Chrome - як скопіювати об’єкт з інспектора веб-браузера як код


491

Я роблю оператор console.log у своєму javascript, щоб увійти в об'єкт javascript. Мені цікаво, чи є спосіб, як тільки це зробити - скопіювати цей об’єкт як код JavaScript. Я намагаюся зробити це перетворити об’єкт, створений за допомогою ajax для розбору каналу XML, у статичний об’єкт JavaScript, щоб файл міг працювати локально, без сервера. Я включив знімок екрана об’єкта у вікно хромованого інспектора, щоб ви могли бачити, що я намагаюся зробити.введіть тут опис зображення


1
Спробуйте використовувати firefox та опцію .toSource (). Простіше
chepe263

Відповіді:


1246
  1. Клацніть правою кнопкою миші об’єкт на консолі Chrome і виберіть Store as Global Variableіз контекстного меню. Він поверне щось на зразок temp1імені змінної.

  2. У Chrome також є copy()метод, тому copy(temp1)в консолі слід скопіювати цей об’єкт у буфер обміну.

Скопіюйте об’єкт Javascript у Chrome DevTools

Примітка щодо рекурсивних об'єктів: Якщо ви намагаєтесь скопіювати рекурсивний об'єкт, ви отримаєте [object Object]. Вихід із цього - copy(JSON.stringify(temp1))об’єкт буде повністю скопійований у буфер обміну як дійсний JSON, тож ви зможете відформатувати його за своїм бажанням, використовуючи один із багатьох ресурсів.


3
повернутись невизначеним у хромованій версії 49.0.2623.87 (64-розрядна)? чому>?
Pardeep Jain

10
@PardeepJain - це очікується від методу copy (), оскільки повернути нічого немає. Дані повинні бути у буфері обміну.
Карл

35
Це просто дає [object Object]для мене.
Ullallulloo

1
@Ullallulloo спробуйте увійти з JSON.stringify як це: stackoverflow.com/a/4293047/622287
kevnk

3
він працює лише в тому випадку, якщо у вас є дрібний об'єкт JS, якщо у вас є рекурсивний глибокий об'єкт, ви отримаєте [Object Object] - що очікується
Marwen Trabelsi

62

Спробуйте JSON.stringify(). Скопіюйте отриманий рядок. Не працює з об’єктами, що містять кругові посилання.


7
Я не бачу, як це буде працювати, якщо ви не модифікуєте код, який записує в нього.
iConnor

16
Я отримуюTypeError: Converting circular structure to JSON
Тоні Брасунас

40

Ви можете скопіювати об’єкт на дошку для відеокліпів за допомогою copy (JSON.stringify (Object_Name)); в консолі.

Наприклад: - Скопіюйте та вставте наведений нижче код у консоль та натисніть клавішу ENTER. Тепер спробуйте вставити (CTRL + V для Windows або CMD + V для mac) його десь ще, і ви отримаєте {"name": "Daniel", "age": 25}

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

copy(JSON.stringify(profile));

14
Не працює з вузлами DOM, вікном чи будь-яким іншим об’єктом, який круговий
Карлес Альколея

На сьогодні найпростіше рішення для великого, але простого об'єкта.
Хершезі

найпростіше рішення
Анандхукришна ВР

26

Тепер ви можете це зробити в Chrome, клацнувши правою кнопкою миші на об'єкті та вибравши "Зберегти як глобальну змінну": http://www.youtube.com/watch?v=qALFiTlVWdg

введіть тут опис зображення


2
З версії 39.0.2171.95 варіант "Зберігати як глобальну змінну" недоступний під час огляду пристроїв Android із Chrome.
Вальтер Роман

1
@David Calhoun, я проголосував за твою відповідь. Схоже, ваша відповідь була опублікована 12 червня 2014 року, а одна прийнята - 5 серпня 2014 року, значною мірою приймаючи саме те, що у вас було. Я мушу визнати, що він згадує temp1, де ваша відповідь показує це лише у вашому відео, тому, можливо, саме тому інша відповідь була прийнята. Найкращі побажання.
PatS

13

Виконайте наступні дії:

  1. Виведіть об'єкт з console.log з вашого коду, як-от так: console.log (myObject)
  2. Клацніть правою кнопкою миші на об’єкті та натисніть «Зберегти як глобальний об’єкт». У цей момент Chrome надрукував би ім'я змінної. Припустимо, це називається "temp1".
  3. В консолі введіть: JSON.stringify(temp1).
  4. У цей момент ви побачите весь об'єкт JSON як рядок, який ви можете скопіювати / вставити.
  5. Ви можете використовувати онлайн-інструменти, такі як http://www.jsoneditoronline.org/, щоб вподобати рядок у цей момент.

Крок з JSON.stringify (temp1) може вплинути на тривале виконання, якщо об'єкт великий.
героїн

@JoeTidee У мене був той самий випуск, але я налаштував debuggerзаяву, а потім отримав свій var прямо з консолі на точці розриву.
Тоні Брасунас

11

Якщо ви надіслали об’єкт через запит, його можна скопіювати на вкладці Chrome -> Network.

Запит корисної навантаження -> Переглянути джерело

введіть тут опис зображення

введіть тут опис зображення


2
Після копіювання проаналізованого корисного навантаження ви можете відформатувати json з jsonformatter.curiousconcept.com .
Мухаммед Хассан

0

Використання "Зберігати як глобальну змінну" працює, але він отримує лише остаточний екземпляр об'єкта, а не той момент, коли об'єкт реєструється (оскільки ви, ймовірно, хочете порівнювати зміни з об'єктом у міру їх виникнення). Щоб отримати об'єкт в його точний момент часу, коли він буде змінений, я використовую це ...

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

Назвіть це так ...

logObject(puzzle);

Можливо, ви захочете видалити .replace (/./ g, ", \ n") регулярний вираз, якщо у ваших даних є кома.


0

Тому,. У мене виникло це питання. за винятком я отримав [об'єкт об'єкта]

Я впевнений, що ви могли це зробити за допомогою рекурсії, але це працювало для мене:

Ось що я зробив у своїй консолі:

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);

Потім вставте у свій редактор.


0

Це повинно допомогти впорядкувати глибокі об'єкти, виключаючи рекурсивні Windowта 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

Клацніть правою кнопкою миші дані, які потрібно зберегти

  • По-перше, клацніть правою кнопкою миші на даних, які ви хочете зберегти -> виберіть "Зберегти як глобальну змінну". І нова змінна темп відобразиться внизу: (змінна темпп): нова змінна темп з'явиться в консолі
  • Копія команди другого використання (temp_variable_name) на зразок малюнка: введіть тут опис зображення. Після цього ви можете вставити дані в будь-яке місце, де вам потрібно. сподіваюсь на корисні /

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.