Как создать отформатированные сообщения журнала консоли javascript

94

Сегодня я «ковылял» консолью в Chrome на Facebook.
На удивление я получил это сообщение в консоли.

Теперь мой вопрос:
как это возможно?
Я знаю, что для консоли есть несколько "эксплойтов", но как сделать такое форматирование шрифтов в консоли? (и это console.log?)

Андерс Кьельдсен
источник

Ответы:

133

Да, вы можете отформатировать console.log()примерно так:

console.log("%cExtra Large Yellow Text with Red Background", "background: red; color: yellow; font-size: x-large");

Обратите внимание на %cпредшествующий текст в первом аргументе и спецификации стиля во втором аргументе. Текст будет похож на ваш пример.

См . «Вывод консоли стилизации с помощью CSS» или документацию по консоли FireBug для получения более подробной информации.

Ссылки на документацию также включают в себя некоторые другие полезные приемы, такие как включение ссылок на объекты в журнал консоли.

Даллас
источник
Возможно, вы захотите проверить, используется ли совместимый браузер, прежде чем пытаться использовать строки формата console.log, поскольку старые браузеры могут остановить ваш скрипт с исключением. caniuse говорит, что он был представлен в Firefox 9 и Edge 79; Chrome начал поддерживать его, очевидно, за некоторое время до Chrome 83, но мы точно не знаем, когда.
Сайлас С. Браун,
38

Попробуй это:

console.log("%cThis will be formatted with blue text", "color: blue");

Цитируя документы,

Вы используете спецификатор формата% c, чтобы применить пользовательские правила CSS к любой строке, которую вы пишете в консоли с помощью console.log () или связанных методов.

Источник: https://developers.google.com/web/tools/chrome-devtools/console/console-write#styling_console_output_with_css

размытие
источник
7
Привет, голосующий против, есть какие-нибудь комментарии? - трудно улучшить ответ (который, по вашему мнению, не является хорошим), если вы не оставляете комментарии, объясняющие себя. :)
blurfus
31

Вы также можете форматировать подстроки.

var red = 'color:red';
var blue = 'color:blue';
console.log('%cHello %cWorld %cfoo %cbar', red, blue, red, blue);

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

Кшиштоф Бодух
источник
4
Обратите внимание, что console.logстилизация возможна только в пределах первого аргумента, и стили должны следовать сразу.
Qwerty
9

С веб- сайта Google: site

console.log("%cThis will be formatted with large, blue text", "color: blue; font-size: x-large");
Джонатан
источник