哪些浏览器支持console.log()?

Kin*_*rog 28 javascript cross-browser console.log

所有浏览器都支持这个吗?我想输出错误,console.log()但是想知道这是否支持所有浏览器?

console.log("Error etc");
Run Code Online (Sandbox Code Playgroud)

Aar*_*ver 13

不,并非所有浏览器都支持,console.log因为它不是标准的一部分,而且是DOM的扩展,因此您不应指望它的存在.为了使您的代码具有弹性,您应该假设它存在并相应地编码.

  • 某些东西是否是标准的一部分以及它是否得到所有浏览器(或任何相关技术)的支持都不是一回事.一个更实际的理由是,是的,如果您依赖console.log的存在,可能会出现旧的IE版本 - 为了您的应用而不是标准合规的神圣精神. (10认同)
  • @John差不多3年后,我会说你的应用程序不应该在生产部署中使用它.尽管所有主流浏览器在其当前迭代中都支持console.log,但并不能保证人们根本不会使用主流浏览器或浏览器来执行代码.我现在可以做的最好的参考是MDN:https://developer.mozilla.org/en-US/docs/Web/API/Console/log - 这个页面上的第一个语句是:"这个功能是非标准的,不在标准轨道上.不要在面向网络的生产站点上使用它".WebApp与否这是正确的做法. (2认同)

Mad*_*aks 12

我过去做过类似的事情:

// Log to native console if possible, alert otherwise
window.console = typeof window.console === 'undefined'
    ? {log:function(/* polymorphic */){alert(arguments)}}
    : window.console;
Run Code Online (Sandbox Code Playgroud)

您可以将它放在JS的"顶部",当您被迫使用不支持的浏览器进行调试时,它可以很好地工作console,并且不需要您更改已经调用的其他JS源代码console.log到处都是.当然,除了alert保持理智之外,你可能还想做些什么......

http://jsfiddle.net/4dty5/


joe*_*dle 9

现在是2015年8月,我认为目前这个问题的答案是:

移动和桌面上的所有主流浏览器都支持console.log.(caniuse)

它不是任何标准的一部分,但它现在是完整的现代浏览器的预期可交付成果.

然而:

如果您需要支持旧的浏览器(IE <10),更多的移动浏览器,或用户运行实验的浏览器,那么它可能是使用填充工具是一个好主意(1,2,3,4),以确保window.console存在.

它可能无法在所有浏览器上的WebWorkers中使用.(MDN)

在UC浏览器和Opera Mini中,功能将运行,但您将看不到输出.(caniuse)

但对于现在的绝大多数网络用户,我们可以假设console.log将按预期工作.


asg*_*oth 8

制作包装函数:

function log(text) {
  if (window.console) {
     window.console.log(text);
  }
}
Run Code Online (Sandbox Code Playgroud)

  • 除此之外,现在只提供日志包装器的行号 (8认同)

Men*_*ual 7

大多数浏览器都这样做,但Internet Explorer 9存在问题,除非你打开调试窗口,否则它不会运行任何javascript.花了我们几个小时来找到解决这个问题的方法.


ow3*_*w3n 7

此代码将检查函数是否存在,并在不存在的情况下创建虚拟函数.信用:StackOverflow

if (!window.console) window.console = {};
if (!window.console.log) window.console.log = function () { };
Run Code Online (Sandbox Code Playgroud)