2013-05-10 13 views
17

C'è un modo per verificare se un browser è in grado di utilizzare i colori della console senza sniffare?Qualche modo di rilevare se una console di navigazione è in grado di eseguire il rendering dei colori?

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

Ad esempio, in chrome 26+ e firebug stamperà l'output colorato.

+1

Perché è necessario stampare i colori in consol? è solo a scopo di debug –

+2

Sto costruendo uno strumento di debug in js ... – lededje

+3

Perché qualcuno che chiede solo "perché hai bisogno ..." ha un +1? Odio quella domanda! Perché è rilevante il motivo per cui qualcuno ha bisogno di qualcosa? –

risposta

10

Questo è uno dei pochi casi in cui il rilevamento della versione del browser sembra la soluzione valida. Per minimizzare i pericoli di questo approccio, assicurati di usare una lista nera piuttosto che una lista bianca, non importa quanto questo possa sembrare intuitivo in questo momento (per assicurarti di non tralasciare il nuovo browser futuro come accaduto con un sacco di vecchio codice focalizzato su netscape)). Sono consapevole che questa non è la risposta che volevi sentire, ma come console.log è una funzione nativa e il suo effetto non può in alcun modo essere osservato, quindi per quanto posso vedere l'unica opzione è quella di eseguire il rilevamento della versione del browser.

+5

Rilevamento del browser? Firefox non supporta i colori, mentre Firebug lo fa. –

+1

Ho creduto che fosse ovvio, ma puoi controllare che la console firebug sia usata usando '(window.console.firebug || window.console.exception)'. Il primo funzionerà con versioni precedenti di firebug, ma purtroppo Firebug ha deciso di rimuovere questo https://code.google.com/p/fbug/issues/detail?id=4772 –

+1

Puoi anche rilevare la console integrata di Firefox tramite la console .__ mozillaConsole__'. –

4

ho scritto Console.js https://github.com/icodeforlove/Console.js per permetterci di fare di questo un po 'più facile

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

allora si può solo fare questo

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

sarà garbo degrada come questo

console.js example

+0

Bella libreria, come hai rilevato se i colori possono essere utilizzati o meno? – lededje

+0

@lededje sfortunatamente rilevamento del browser (https://github.com/icodeforlove/Console.js/blob/master/src/Console.js#L12) –

Problemi correlati