相关疑难解决方法(0)

什么是console.log?

有什么用console.log

请通过代码示例解释如何在JavaScript中使用它.

javascript firebug console.log

407
推荐指数
15
解决办法
69万
查看次数

'console'是Internet Explorer的未定义错误

我正在使用Firebug,并且有一些声明:

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

在我的页面中.在IE8(也可能是早期版本)中,我收到脚本错误,说"控制台"未定义.我试着把它放在我的页面顶部:

<script type="text/javascript">
    if (!console) console = {log: function() {}};
</script>
Run Code Online (Sandbox Code Playgroud)

我仍然得到错误.有什么办法摆脱错误?

javascript internet-explorer internet-explorer-8 ie-developer-tools

374
推荐指数
10
解决办法
24万
查看次数

252
推荐指数
8
解决办法
19万
查看次数

我应该从生产代码中删除console.log吗?

我目前在我的代码中到处都有这个JS语句:

window.console && console.log("Foo");
Run Code Online (Sandbox Code Playgroud)

我想知道这是否成本高昂,或者在生产中是否有任何负面影响.

我可以自由离开客户端登录,还是应该离开?

编辑:最后,我认为我(以及其他任何人?)能够提出的最佳论点是,通过留下记录消息,在服务器和客户端之间传输的额外数据可能是不可忽略的.如果生产代码将被完全优化,必须删除日志记录以减少发送到客户端的javascript的大小.

javascript logging

75
推荐指数
7
解决办法
5万
查看次数

console.log.apply无法在IE9中运行

看起来我已经重新发明了这个轮子,但不知怎的,这在Internet Explorer 9中不起作用,但在IE6中也是如此.

function debug()
  if(!window.console) { 
    window.console = { log: function() { /* do something */ } };
  }
  console.log.apply(console, arguments);
}
Run Code Online (Sandbox Code Playgroud)

相关: 对javascript的Apply()问题

F12 Debugger告诉我这个"对象"(console.log)不支持'apply'方法.它甚至不被认为是一种功能吗?还有其他指示或想法吗?

javascript debugging console internet-explorer-9

47
推荐指数
2
解决办法
2万
查看次数

如何安全地包装`console.log`?

假设我想console.log为某些合法的生产原因包含一些调用,比如像单元测试工具这样的东西.显然,如果浏览器没有console,或者如果没有控制台,我不希望这会抛出一个过早的异常.

创建一个简单的log函数来将内容记录到控制台的最佳方法是什么,或者如果没有控制台,则默默地失败而没有错误?

上面提到的问题的答案是:

var log = Function.prototype.bind.call(console.log, console);
log.apply(console, ["this", "is", "a", "test"]);
Run Code Online (Sandbox Code Playgroud)

可以log在IE上正常调用此函数,apply这里的使用只是为了表明它是可能的吗?并且,我从链接的问题中假设,如果IE的控制台在运行时关闭,这将失败,因此log即使在控制台打开后也无法工作,对吗?如果这是错的,有人可以解释它是如何工作的吗?

这篇ycombinator文章似乎很相关.他们是否正在谈论与上面链接的问题相同的IE行为?

Function.prototype.apply.apply(console.log, [console, arguments]);
Run Code Online (Sandbox Code Playgroud)

适用于IE9破解的console.log和其他供应商的常规console.log.与使用Array.prototype.slice将参数转换为实数组相同的hack.

这在我的chrome控制台中运行良好.

function echo(){
  Function.prototype.apply.apply(console.log, [console, arguments]);
}
Run Code Online (Sandbox Code Playgroud)

简化:

function echo(){
  Function.apply.call(console.log, console, arguments);
}
Run Code Online (Sandbox Code Playgroud)

添加支票并返回:

function echo(){
  return window.console && console.log &&
         Function.apply.call(console.log, console, arguments);
}
Run Code Online (Sandbox Code Playgroud)

上面的例子对我来说足够了.不过,我手头没有IE来测试它.这是安全包装的合理方法console.log吗?


更多问题

按照下面导航答案中的链接,我们看到代码:

Function.prototype.call.call(console.log, console,
    Array.prototype.slice.call(arguments));
Run Code Online (Sandbox Code Playgroud)

arguments在这种情况下转换为数组的目的是什么?我想如果你不这样做,它必须在某些浏览器中失败?并且,除了歌剧奇怪的行为和无控制台的浏览器之外,这样的东西不应该适用于其他所有浏览器吗?并且确实prototype在上面的例子中起到了作用,或者我们只是在迂腐... Function.call.call或者Object.call.call或者就此而言isNaN.call.call似乎也是如此Function.prototype.call.call …

javascript console logging internet-explorer wrapper

47
推荐指数
4
解决办法
2万
查看次数

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

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

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

javascript cross-browser console.log

28
推荐指数
6
解决办法
2万
查看次数

AngularJS Internet Explorer 9

我在angularjs和internet explorer9上遇到了一些麻烦.看起来,angularjs没有正确加载.如果我开始使用我的应用程序,没有任何工作,但如果我启动ie9的开发工具并刷新页面,我的应用程序将工作,一切都在加载并准备使用.

我不知道,发生了什么以及如何解决这个问题.我使用angularJs版本1.1.5.十分感谢!

更新和解决

我的问题是,我到处都有console.log(..).在FF或Chrome上,一切正常,但是对于II9,会发生一些事情,即在语句console.log(...)之后停止; 从我的JavaScript中删除console.log(..)后,我的应用程序也适用于IE7/8/9.

但?? ??

但我会问为什么IE在console.log上有这么多问题?

internet-explorer-9 angularjs

16
推荐指数
2
解决办法
1万
查看次数

Console.log IE9问题

我使用local.storage创建了一个简单的任务管理器,我使用console.log来设置一些变量,但是使用它,整个任务应用程序在IE中不起作用.

有没有其他方法可以做到这一点?

以下是其他浏览器中工作任务管理器的小提琴:http://jsfiddle.net/cRse9c/

console jquery internet-explorer local-storage

15
推荐指数
1
解决办法
1万
查看次数

jQuery脚本只能在ie8/9开发人员工具下工作

我正在尝试调试我的IE上没有工作的jQuery(工具)脚本.可以在这里找到一个例子:

http://dl.dropbox.com/u/16799097/www/demo/jQuery_Slider/index.html

它正确加载,第一个(滑动)事件发生,然后没有任何附加.

当我尝试通过使用developer-tools重新加载页面来调试我的脚本时(按下F12键),一切都像魅力一样......如果我无法调试,我该怎么办?

任何帮助将不胜感激,我被困...

jquery ie-developer-tools

8
推荐指数
1
解决办法
1949
查看次数