я могу запретить 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 символов. Я не вижу в настройках консоли ничего, что могло бы изменить это.

jcollum
источник

Ответы:

43

Недавно я обнаружил, что инструменты разработчика Chrome имеют copyфункцию, которая копирует в буфер обмена - без усечения! Удобно также сериализовать объекты в элементы JSON и DOM в HTML, прямо в буфер обмена.

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

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

WickyNilliams
источник
3
это гладко; хотя на самом деле не отвечает на вопрос, должен быть комментарий
jcollum
2
+1 это так полезно. Конечно, технически он не отвечает на вопрос, но решает проблему, которая вызывает вопрос - как получить полный, не усеченный текст из консоли. Просто вставьте его в текстовый редактор и все будет в порядке.
15:15
Я попал в Chrome: Uncaught ReferenceError: копия не определена
опубликовано
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 ('My Really Long Debug Text');

WaterCabbage
источник
37.0.2062.120 м в Windows 7: без эллипсов.
14:30
Больше не работает ..
Totty.js
4

Я использую следующее:

var text = 'a really long string';
window.prompt("Copy to clipboard", text);

затем скопируйте текст из поля редактирования.

Декстер Ле Блан младший
источник
Это также усечено
гражданин Конн
2

Обновите Chrome до версии 32, которая больше не делает этого, как показано на следующем рисунке:

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

jcollum
источник
2
Chrome Canary V36 + ... это все еще делает это. ... но сейчас не показывает длину. например long string...ends here.
gcb
Вы находитесь в версии Chrome, которая еще не была выпущена. Это не происходит в v33 на Ubuntu: imgur.com/RPCgR6f - вы меня понизили, потому что мое решение не решило вашу проблему, даже если вы находитесь в предварительной версии ?!
Jcollum
1
«решить проблему. запуск старой версии браузера невозможен» - это не старая версия браузера! Я в курсе и в v33 в Ubuntu. Моя коробка Windows обновлена, и это v34. Я не знаю, откуда у тебя v36. «это не происходит на v33» - и это не так, что доказывает скриншот (с v33).
Jcollum
1
ключевой вывод заключается в том, что эта ошибка / поведение было вставлено обратно после 33 или 34.
gcb
1
Это мило. Вы должны отправить сообщение об ошибке. Поскольку в текущей выпущенной версии Chrome ее нет, не стоит опускать меня до глубины души, говоря, что обновление до последней выпущенной версии Chrome исправляет ее. И это справедливо для V34 на Win7 и V33 на Ubuntu.
Jcollum
2

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

Только что попробовал на значении 400KB!

Источник: https://stackoverflow.com/a/41726364/250838

Ando
источник
2

Длина строки, отображаемой на консоли, программно ограничена внутри inspector.js. По умолчанию установлено 150 символов. Вы не можете применить CSS, потому что он выводится на консоль как HTML. Текст уже обрезан.

Вы можете изменить это, но это займет немного работы:

Необходимые и полезные инструменты:

• ack (brew install ack) или ag. (для поиска огромных текстовых файлов очень быстро).

• paktools для питона. Для распаковки ресурсов Chrome, чтобы можно было их редактировать. https://github.com/Magister/pak-tools .

• текстовый редактор по выбору.

  1. Перейдите на любую версию Chrome. Я использую Chromium в качестве примера, но путь в других версиях такой же:

    cd "/Applications/Chromium.app/Contents/Versions/YOURVERSION/Chromium Framework.framework/Resources/"
    
  2. Клонировать или скачать paktools. Это позволит вам распаковать ресурсы Chrome, отредактировать их, а затем перепаковать. Я поместил свой в мой, ~./binно вы можете положить их в любом месте. Примеры будут отражать мой путь:

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

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

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

ПРЕДУПРЕЖДЕНИЕ: 6. Команда devtools выдвигает обновления версий фреймворка без вашего ведома. И вы потеряете все свои моды, если они это сделают. Я блокирую это, выполняя /Users/Op/Library/Google/GoogleSoftwareUpdate/GoogleSoftwareUpdate.bundle/Contents/Resources/ksinstall --uninstallи убивая всех ключевых камней Деймонов и т. Д.

Работает как шарм.

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

модификация
источник