чи можна запобігти обрізанню рядків Chrome у консолі розробника?


47
> ary = new Array('test msg kinda long but gets the point across and such and it shows ellipsises after a certain point in my test. test msg kinda long but gets the point across and such and it shows ellipsises after a certain point in my test. test msg kinda long but gets the point across and such and it shows ellipsises after a certain point in my test. test msg kinda long but gets the point across and such and it shows ellipsises after a certain point in my test. test msg kinda long but gets the point across and such and it shows ellipsises after a certain point in my test.');
> JSON.stringify(ary)
"["test msg kinda long but gets the point across and such and it shows ellipsises... (length: 116)"

Я дуже хочу повний об’єкт, але Chrome хоче обрізати результат приблизно на 80 символів. Я не бачу нічого в налаштуваннях консолі, яке б це змінило.

Відповіді:


43

Нещодавно я виявив, що інструменти для розробників Chrome мають copyфункцію, яка копіює в буфер обміну - без усікання! Він також легко серіалізує об'єкти з елементів JSON та DOM в HTML, прямо в буфер обміну.

copy(someLongString); // no truncation!
copy({ foo : true }); // JSON
copy(someDOMElement); // HTML

Оскільки я намагався скопіювати довгий рядок у буфер обміну для аналізу в іншому місці, це чудово відповідало моїм потребам


3
це гладко; Насправді не відповідає на питання, натомість повинен бути коментар
jcollum

2
+1 це так корисно. Зазначено, що це технічно не відповідає на питання, але вирішує проблему, викликаючи запитання - як отримати повний невправлений текст з консолі. Просто вставте його в текстовий редактор і ви відсортуєте.
onietiman

Я отримав в Chrome: Uncaught ReferenceError: копія не визначений
arod

3
@arod доступний лише у консолі, а не в офіційному форматі
WickyNilliams

2
Це працює і в Firefox.
Бьорн

16

console.dir(longstringhere) працює.

copyне працював і для мене, він говорив, що це undefined.


1
Те ж саме. "console.copy" не працював, але "console.dir" працював. Ти врятував мені день.
Бетті

2
copyФункція нічого не виводить (звідси undefinedочікується), замість цього вона копіює аргумент у ваш системний буфер, просто вставити його ( ctrl-v) в будь-який редактор
nazikus

1
не працює ....
Йоссі Шашо

2
Ви повинні скопіювати з консолі, наприклад, розмістіть точку розриву, де є значення, відкрийте консоль, введіть copy(yourVariable). Також це просто copyне такconsole.copy
WickyNilliams

1
Кожна функція в JS повертається невизначеною, якщо не вказана. Так це насправді працює.
atilkan

5

Така поведінка все ще існує у версії Chrome 37.0.2062.103.

Ви можете подолати це під час налагодження за допомогою: document.write ("Мій дійсно довгий текст налагодження");


37.0.2062.120 м на Windows 7: немає еліпсів.
jcollum

Більше не працює ..
Totty.js


2

Оновіть Chrome до версії 32, яка вже не робить цього, як показано на цій фотографії:

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


2
chrome canary v36 + ... це все ще робить. ... але тепер не показує довжини. напр long string...ends here.
gcb

Ви знаходитесь у версії хрому, яка ще не була випущена. Це не відбувається в v33 на Ubuntu: imgur.com/RPCgR6f - ти спростував мене, тому що моє рішення не вирішило вашу проблему, навіть якщо ви в попередній версії ?!
jcollum

1
"вирішити проблему. Запустити стару версію браузера неможливо" --- це не стара версія браузера! Я в курсі і в v33 в ubuntu. Моє вікно вікно оновлено і це v34. Я не знаю, звідки ти береш v36. "це не відбувається на v33" - і це не так, що підтверджує скріншот (від v33).
jcollum

1
Ключовим фактором є те, що ця помилка / поведінка була вставлена ​​назад після 33 чи 34.
gcb

1
Це мило. Ви повинні надіслати звіт про помилку. Оскільки струм випущена версія Chrome не має його, ви не повинні downvote мене за ці слова поновлення програмного забезпечення до останньої випущеної версії Chrome виправляє його. І це справедливо для V34 на Win7 та V33 на Ubuntu.
jcollum

2

У Chrome 58 (можливо, і раніше) ви можете використовувати параметр Store as Global Variableменю у контекстному меню будь-якого значення на консолі, вкладеного на будь-якому рівні. Він присвоює вибраному значенню змінну з унікальним іменем, яке негайно реєструється на консолі.

Просто спробував це на 400 КБ!

Джерело: https://stackoverflow.com/a/41726364/250838


2

Довжина рядка, що надається консолі, програмно обмежена всередині inspector.js. За замовчуванням встановлено 150 символів. Немає CSS, який можна застосувати, оскільки він виводиться на консоль як HTML. Текст уже врізаний.

Ви можете змінити, але це займе трохи роботи:

Необхідні та корисні інструменти:

• ack (варити встановити ack) або ag. (для швидкого пошуку величезних текстових файлів).

• пактоли для пітона. Щоб розпакувати хромовані ресурси, щоб мати можливість їх редагувати. https://github.com/Magister/pak-tools .

• текстовий редактор на вибір.

  1. cd або перейдіть до будь-якої версії Chrome. Я використовую Chromium в якості прикладу, але шлях є таким же в інших версіях:

    cd "/Applications/Chromium.app/Contents/Versions/YOURVERSION/Chromium Framework.framework/Resources/"
    
  2. Клоніруйте або завантажте пактоли. Це дозволить розпакувати хромовані ресурси, відредагувати їх і потім упакувати. Я помістив свою, ~./binале ви можете помістити їх куди завгодно. Приклади відображають мій шлях:

  3. Тепер у Chrome/.../Chrome Framework.framework/Resouresпапці виконайте: python2 ~/.bin/unpack.py resources.pakіcd ./resouces

  4. Вам доведеться знайти, де це. Файли постійно змінюються, і тому це ніколи не буває. $ ag "static linkify"Це взяло мене до 28542. Я змінив функцію за замовчуванням на 2000 символів, а також оновив css, щоб я міг прокручувати горизонтально в консолі.

  5. Тепер CD вийде з папки resouces, яку ви розпакували, і перейдіть у її батьківську. Виконати: python2 ~/.bin/pack.py resourcesі вуаля. Перезапустіть Chrome, і ваші розробники тепер користувальницькі.

ПОПЕРЕДЖЕННЯ: 6. Команда розробників виштовхує оновлення версій рамки, не знаючи вас. І ви втратите всі свої модники, якщо вони дійдуть. Я блокую це, виконуючи /Users/Op/Library/Google/GoogleSoftwareUpdate/GoogleSoftwareUpdate.bundle/Contents/Resources/ksinstall --uninstallі вбиваючи всіх ключових каменів тощо.

Працює як шарм.

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

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