Jak utworzyć sformatowane komunikaty dziennika konsoli JavaScript

94

„Wędrowałem” dziś przez konsolę w Chrome na Facebooku.
O dziwo dostałem tę wiadomość w konsoli.

Teraz moje pytanie brzmi:
jak to jest możliwe?
Wiem, że istnieje kilka metod „exploitów” dla konsoli, ale jak można zrobić takie formatowanie czcionek w konsoli? (a czy to console.log?)

Anders Kjeldsen
źródło

Odpowiedzi:

133

Tak, możesz sformatować plik za console.log()pomocą czegoś takiego:

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

Zwróć uwagę na %cpoprzedni tekst w pierwszym argumencie i specyfikacje stylu w drugim argumencie. Tekst będzie wyglądał jak przykład.

Aby uzyskać więcej informacji, zobacz Google „Styling Console Output with CSS” lub FireBug's Console Documentation .

Odnośniki do dokumentacji zawierają także inne fajne sztuczki, takie jak dołączanie dowiązań do obiektów w dzienniku konsoli.

Dallas
źródło
Możesz chcieć sprawdzić, czy używana jest zgodna przeglądarka, zanim spróbujesz użyć ciągów formatu w console.log, ponieważ starsze przeglądarki mogą zatrzymać skrypt z wyjątkiem. caniuse twierdzi, że został wprowadzony w Firefoksie 9 i Edge 79; Chrome zaczął go obsługiwać najwyraźniej jakiś czas przed Chrome 83, ale nie wiemy dokładnie, kiedy.
Silas S. Brown
38

Spróbuj tego:

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

Cytując dokumenty,

Specyfikator formatu% c służy do stosowania niestandardowych reguł CSS do dowolnego ciągu zapisywanego w konsoli za pomocą console.log () lub powiązanych metod.

Źródło: https://developers.google.com/web/tools/chrome-devtools/console/console-write#styling_console_output_with_css

blurfus
źródło
7
Witam przeciwnik, jakieś komentarze do dodania? - ciężko jest poprawić odpowiedź (która Twoim zdaniem nie jest dobra), gdy nie zostawiasz komentarzy wyjaśniających siebie. :)
blurfus
31

Możesz także formatować podciągi.

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

wprowadź opis obrazu tutaj

Krzysztof Boduch
źródło
4
Zwróć uwagę, że stylizowanie jest możliwe tylko w pierwszym argumencie programu, console.loga style muszą następować natychmiast.
Qwerty
9

Z witryny Google: witryna

console.log("%cThis will be formatted with large, blue text", "color: blue; font-size: x-large");
Jonathan
źródło