2012-03-22 2 views
29

Я поставил точку останова в javascript и тестирую некоторый код с Chrome. Я также добавил выражение watch для значения.Как скопировать наблюдаемую переменную javascript в Chrome?

Хром срабатывает в точке останова и показывает значение. Однако значение очень велико, и оно не отображает все. Я перемещаю разделитель окна влево, но он останавливается на среднем экране. Когда я дважды нажимаю на наблюдаемую переменную, он хочет отредактировать выражение. Когда я нажимаю один раз и перетаскиваю его, он выбирает видимый текст, но не все. Щелчок правой кнопкой ничего не делает.

Это то, что я вижу

url: "m=mtgoxUSD&SubmitButton=Draw&r=&i=&c=0&s=&e=&Prev=&Next=&t=S&b=&a1=&m1=10&a2=&m2=25&x=0... 

Я хочу, чтобы скопировать все выражение без ... в конце концов. Как я могу это сделать?

ответ

9

Вот что я делаю.

Редактировать: Это работает с переменными области видимости, которые находятся ниже панели «Выражения часов».

  1. Дважды щелкните по значению, чтобы перейти в режим редактирования.

  2. Ctrl + A (windows) или Cmd + A (mac), чтобы выбрать все значение.

  3. Ctrl + C (или Cmd + C) для копирования.

+1

Двойной щелчок редактирует наблюдаемую переменную выражения, то есть url, а не значение – siamii

+3

aaaah, извините, неправильно прочитал ваше сообщение .. Я делаю это в разделе Variables Variables. Работает там .. – Ben

+1

Спасибо, это достаточно хорошо, он работает в области переменных области – siamii

27

Показать консоль, а затем ввести отображаемое выражение и нажать. Вы увидите всю ценность, и вы сможете ее выбрать и скопировать.

Хотя отладчик приостановлен, это работает даже с выражениями, которые включают локальные переменные, которые находятся в области видимости в текущей точке выполнения.

28

Я добавляю поздний ответ спустя почти 3 года, потому что с текущими инструментами Chrome Dev Tools ни один подход не работает, если у вас есть массив или даже только вложенное свойство Object в этой переменной, после обоих ответов вы просто закончите копирование строки с большим количеством строк Array[size] или Object, чередующихся в фактическом значении объекта, совершенно бесполезно для сложных иерархий объектов.

Предлагаемые подходы одобрены, если вам просто нужно вручную перемещаться по значению, но нет, если вам нужно скопировать его по запросу в вопросе.

То, что я рекомендую вместо этого, особенно если вам нужно скопировать наблюдаемое значение, чтобы использовать его в качестве содержимого новой переменной, заключается в том, чтобы выгрузить его на консоль после того, как он был стрифицирован.

Показать консоль Javascript и тип:

console.log(JSON.stringify(my_watched_var)) 

Таким образом, полная структура будет отображаться в чистом Javascript, полностью многоразовым/копируемом способ.

+7

Я думаю, вы могли бы улучшить это, используя 'copy()' вместо 'console.log()', который копирует строку прямо в ваш буфер обмена. – hdgarrood

+0

Nice !, было бы даже лучше, если бы он мог форматировать скопированные фрагменты понемногу, чтобы добавить разрыв строки между всеми свойствами переменной. Мне удалось отформатировать его с помощью notepad ++. Замените все «,» на «, \ r \ n». – AXMIM

+1

'copy ()' также работал для меня в Firefox. :) – cxw

1

Посмотрите этот ответ «Is there a way to auto expand objects in Chrome Dev Tools?», он выполняет итерации по всем свойствам объекта и показывает полную иерархию, включая тип данных и значения.

Полезно, если вам нужно сравнить два состояния приложения.

16

Chrome DevTools' консоль командной строки имеет встроенную функцию „копировать“:

copy(my_variable) 

Если значение my_variable не является строкой, он будет автоматически преобразован в формат JSON. Получающаяся строка остается в системном буфере обмена для вставки.

Вот reference doc.

+0

это помогло мне особенно для длинной строки – lbsweek