2013-05-10 15 views
17

ブラウザがスニッフィングせずにコンソールカラーを使用できるかどうかを確認する方法はありますか?ブラウザコンソールが色をレンダリングできるかどうかを検出する方法はありますか?

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

例えば、chrome 26+とfirebugでは、カラー出力が印刷されます。

+1

なぜ色をコンソールで印刷する必要がありますか?それはデバッグの目的のためだけです –

+2

私はjsでデバッグツールを構築しています... – lededje

+3

「なぜあなたはなぜ必要ですか?」と尋ねる人はなぜ+1を得るのですか?私はその質問が嫌い!誰かが何かを必要とするのはなぜそれが関連しているのですか –

答えて

10

これは、ブラウザのバージョン検出が有効な方法と思われるこれらのいくつかのケースの1つです。このアプローチの危険性を最小限に抑えるには、ホワイトリストではなくブラックリストを使用してください。これは直感的ではありません(古いネットスケープに焦点を当てたコードがたくさんあるため、 )。私はこれがあなたが聞きたい答えではないことを承知していますが、console.logはネイティブ関数であり、その効果は決して観察できませんので、唯一のオプションはブラウザのバージョン検出を行うことです。

私は、あなたがちょうどこの

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

を行うことができ、それは優雅この

console.js exampleのように低下​​します私たちは

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

少し簡単にこれを行うことができるようにConsole.js https://github.com/icodeforlove/Console.js書いた

+5

ブラウザの検出? Firefoxは色をサポートしていませんが、Firebugは色をサポートしています。 –

+1

これは明らかだと思いましたが、firebugコンソールが '(window.console.firebug || window.console.exception)'を使って使用されていることを確認できます。最初のバージョンは古いFirebugのバージョンで動作しますが、残念ながらFirebugはこれを削除することに決めましたhttps://code.google.com/p/fbug/issues/detail?id=4772 –

+1

Firefoxの組み込みコンソールは 'console .__ mozillaConsole__'。 –

4

+0

すてきな図書館で、色を使用できるかどうかはどうでしたか? – lededje

+0

@残念ながらブラウザの検出(https://github.com/icodeforlove/Console.js/blob/master/src/Console.js#L12) –

関連する問題