2013-05-10 15 views
17

Czy istnieje sposób sprawdzenia, czy przeglądarka może używać kolorów konsoli bez wąchania?Jakikolwiek sposób wykrywania, czy konsola przeglądarki jest w stanie renderować kolory?

console.log('%c Oh my heavens! ', 'background: #222; color: #bada55'); 

Na przykład, że w chrome 26+ i firebug będzie drukować kolorowe wydruki.

+1

Dlaczego należy drukować kolory w konsoli? służy tylko do celów debugowania –

+2

Buduję narzędzie do debugowania w js ... – lededje

+3

Dlaczego ktoś, kto pyta tylko "dlaczego potrzebujesz ..." dostaje +1? Nienawidzę tego pytania! Dlaczego ma znaczenie, dlaczego ktoś czegoś potrzebuje? –

Odpowiedz

10

Jest to jeden z niewielu przypadków, w których wykrywanie wersji przeglądarki wydaje się być właściwym sposobem postępowania. Aby zminimalizować zagrożenia wynikające z tego podejścia, upewnij się, że używasz czarnej listy, a nie białej listy, bez względu na to, jak bardzo może to czuć się w tej chwili (aby upewnić się, że nie opuścisz nowej przyszłej przeglądarki, jak miało to miejsce w przypadku wielu starych, skoncentrowanych na kodzie netscape). Jestem świadomy, że nie jest to odpowiedź, którą chciałeś usłyszeć, ale jako console.log jest natywną funkcją, której efekt nie może być w żaden sposób zaobserwowany, tak dalece jak widzę, jedyną opcją jest wykrywanie wersji przeglądarki.

+5

Wykrywanie przeglądarki? Firefox nie obsługuje kolorów, a Firebug. –

+1

Uwierzyłem, że jest to oczywiste, ale możesz sprawdzić, czy konsola firebug jest używana za pomocą '(window.console.firebug || window.console.exception)'. Pierwszy będzie działać dla starszych wersji firebug, ale niestety firebug postanowił usunąć ten https://code.google.com/p/fbug/issues/detail?id=4772 –

+1

Możesz także wykryć wbudowaną konsolę Firefoksa przez 'konsolę .__ mozillaConsole__'. –

4

pisałem Console.js https://github.com/icodeforlove/Console.js aby umożliwić nam zrobić to nieco łatwiej

Console.styles.register({ 
    red: 'color: red', 
    underline: 'text-decoration: underline', 
    bold: 'font-weight: bold' 
}); 

następnie można po prostu zrobić to

console.log('red text '.red + 'red underlined text'.red.underline + 'red bold text'.red.bold); 

będzie wdzięcznie pogorszyć tak

console.js example

+0

Przyjemna biblioteka, jak wykryto, czy można używać kolorów? – lededje

+0

@lededje Niestety wykrywanie przeglądarki (https://github.com/icodeforlove/Console.js/blob/master/src/Console.js#L12) –

Powiązane problemy