有没有办法登录到控制台而不破坏IE下的代码?

Sea*_*son 13 javascript jquery logging

我正在尝试使用console.log将一些日志记录放入我程序的javascript端.但是我注意到,除非在IE中打开开发控制台,否则JS在命中console.log时基本停止工作.这是一个痛苦......这意味着每当我想进行生产构建时,我必须删除所有日志记录.

除了显而易见的:

function DoSafeConsoleLog( parameters )
{
    if ( !$.browser.msie )
    {
         console.log( parameters ); 
    }
}
Run Code Online (Sandbox Code Playgroud)

有没有一种很好的方法来记录对所有主流浏览器友好的JavaScript?

编辑:

那么,在查看重复的帖子(oops)以及在这里考虑答案之后,我必须在调用之前检查控制台是否存在.尽管我不愿意获得额外的标记,但我宁愿不要踩到可能想要使用Firebug Lite调试代码的未来程序员.

SLa*_*aks 15

你可以创建一个假的console:

if (typeof console === "undefined")
    console = { log: function() { } };
Run Code Online (Sandbox Code Playgroud)


zzz*_*Bov 9

IE有自己的控制台,如果你使用的是firebug lite,你不会想要覆盖控制台.只需确保在调用日志时控制台存在:

if (window.console) console.log('foo bar baz', fizz, buzz);
Run Code Online (Sandbox Code Playgroud)

更好的是,使用&&快捷方式:

window.console && console.log('foo bar baz', fizz, buzz);
Run Code Online (Sandbox Code Playgroud)