Javascript / Chrome - Как скопировать объект из инспектора webkit в виде кода

264

Я делаю инструкцию console.log в своем javascript, чтобы зарегистрировать объект javascript. Мне интересно, есть ли способ, как только это сделать - скопировать этот объект в виде javascript-кода. То, что я пытаюсь сделать, - это преобразовать объект, который был создан с помощью ajax для синтаксического анализа XML-потока в статический объект javascript, чтобы файл мог выполняться локально, без сервера. Я включил скриншот объекта в окне инспектора хрома, чтобы вы могли видеть, что я пытаюсь сделать. Изображение 100

  • 1
    Попробуйте использовать Firefox и опцию .toSource (). Это легче
Теги:
object
google-chrome
webkit

8 ответов

705
Лучший ответ
  1. Щелкните правой кнопкой мыши объект в консоли Chrome и выберите " Store as Global Variable в контекстном меню. Он вернет что-то вроде temp1 качестве имени переменной.

  2. У Chrome также есть метод copy(), поэтому copy(temp1) в консоли должен скопировать этот объект в ваш буфер обмена.

Изображение 2286

Примечание по рекурсивным объектам. Если вы пытаетесь скопировать рекурсивный объект, вы получите [object Object]. Этого можно ожидать.

  • 3
    вернуть неопределенное в chrome Версия 49.0.2623.87 (64-разрядная версия)? почему>?
  • 8
    @PardeepJain - это ожидается от метода copy (), потому что возвращать нечего. Данные должны быть в вашем буфере обмена.
Показать ещё 15 комментариев
38

Попробуйте JSON.stringify(). Скопируйте полученную строку.

  • 7
    Я не понимаю, как это будет работать, если вы не измените код, который его регистрирует.
  • 1
    По какой-то причине это не работает, когда я пытаюсь раскрутить keyboardevent ...
Показать ещё 1 комментарий
22

Теперь вы можете выполнить это в Chrome, щелкнув правой кнопкой мыши на объекте и выбрав "Сохранить как глобальную переменную": http://www.youtube.com/watch?v=qALFiTlVWdg

Изображение 2287

  • 2
    Начиная с версии 39.0.2171.95, опция «Сохранить как глобальную переменную» недоступна при проверке устройств Android с помощью Chrome.
  • 1
    @ Дэвид Кэлхун, я голосовал за твой ответ. Похоже, ваш ответ был опубликован 12 июня 2014 года, а принятый был 5 августа 2014 года, в основном с учетом того, что у вас было. Я должен признать, что он упоминает temp1, где ваш ответ показывает его только в вашем видео, так что, возможно, именно поэтому был принят другой ответ. С наилучшими пожеланиями.
21

Вы можете скопировать объект на ваш клип с помощью копирования (JSON.stringify(Object_Name)); в консоли.

Например: - скопируйте и вставьте приведенный ниже код в консоль и нажмите ENTER. Теперь попробуйте вставить (ctrl + V) его где-то еще, и вы получите {"name": "Daniel", "age": 25}

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

copy(JSON.stringify(profile));
  • 12
    Не работает с узлами DOM, окном или любым другим объектом, который является круглым
  • 0
    Безусловно, самое простое решение для большого, но простого объекта.
9

Выполните следующие действия:

  1. Выведите объект с помощью console.log из вашего кода, например: console.log(myObject)
  2. Щелкните правой кнопкой мыши объект и нажмите "Сохранить как глобальный объект". В этот момент Chrome напечатает имя переменной. Предположим, что это называется temp1.
  3. В консоли введите: JSON.stringify(temp1).
  4. На этом этапе вы увидите весь объект JSON в виде строки, которую вы можете скопировать/вставить.
  5. Вы можете использовать онлайн-инструменты, такие как http://www.jsoneditoronline.org/, чтобы префикс вашей строки на этом этапе.
  • 0
    Шаг с JSON.stringify (temp1) может повлиять на длительное выполнение, если объект большой.
  • 2
    Ошибка получения Failed to save to temp variable.
Показать ещё 1 комментарий
6

Если вы отправили объект по запросу, вы можете скопировать его с вкладки Chrome → Network.

Запрос полезной нагрузки → Просмотр источника

Изображение 2288

Изображение 2289

  • 2
    После копирования проанализированной полезной нагрузки вы можете отформатировать json с сайта jsonformatter.curiousconcept.com .
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

Использование "Сохранить как глобальную переменную" работает, но оно получает только последний экземпляр объекта, а не тот момент, когда объект регистрируется (поскольку вы, скорее всего, захотите сравнить изменения с объектом по мере их возникновения), Чтобы получить объект в его точную точку во время изменения, я использую это...

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

Назовите его так...

logObject(puzzle);

Возможно, вы захотите удалить регулярное выражение .replace(/./g, ",\n" ), если в ваших данных есть запятая.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню