Любой способ определить, может ли консоль браузеров отображать цвета?
Есть ли способ проверить, может ли браузер использовать цвета консоли без обнюхивания?
console.log('%c Oh my heavens! ', 'background: #222; color: #bada55');
Например, в chrome 26+ и firebug будет напечатан цветной вывод.
Ответы
Ответ 1
Это один из этих немногих случаев, когда обнаружение версии браузера кажется правильным. Чтобы свести к минимуму опасность такого подхода, не забудьте использовать черный список, а не белый список, независимо от того, насколько неинтуитивно это может показаться прямо сейчас (чтобы убедиться, что вы не оставляете новый будущий браузер, как это случилось с большим количеством старого кода, сфокусированного на netscape). Я знаю, что это не тот ответ, который вы хотели бы услышать, но поскольку console.log
является нативной функцией, и это действие никак не может наблюдаться, поскольку, насколько я вижу, единственным вариантом является обнаружение версии браузера,
Ответ 2
Я написал Console.js https://github.com/icodeforlove/Console.js, чтобы позволить нам сделать это немного легче
Console.styles.register({
red: 'color: red',
underline: 'text-decoration: underline',
bold: 'font-weight: bold'
});
тогда вы можете просто сделать это
console.log('red text '.red + 'red underlined text'.red.underline + 'red bold text'.red.bold);
он грациозно деградирует, как этот
![console.js example]()