22

有没有办法检查浏览器是否能够在不嗅探的情况下使用控制台颜色?

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

例如,在 chrome 26+ 和 firebug 中将打印彩色输出。

4

2 回答 2

11

这是浏览器版本检测似乎是有效方法的少数情况之一。为了尽量减少这种方法的危险,请确保使用黑名单而不是白名单,无论现在这感觉多么不直观(以确保您不会像许多旧的以 netscape 为重点的代码一样遗漏新的未来浏览器)。我知道这不是您想听到的答案,但作为console.log本机功能,它的效果绝不可能被观察到,所以据我所知,唯一的选择是进行浏览器版本检测。

于 2013-05-13T13:02:57.507 回答
3

我写了 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);

它会像这样优雅地退化

控制台.js 示例

于 2014-04-27T09:47:59.600 回答