3

Internet Explorer(8 和 9)中的页面上的 Javascript 打开了开发人员工具console.log()这是已定义的,但实际日志中没有出现任何内容

尝试的事情:

  • 使用已定义且是函数alert()的 s 进行双重检查。consoleconsole.log
  • alert()在代码确实到达该console.log()行之前和之后用 s 检查,
  • 检查任何 IE 后备的代码,例如if(ie){console={log:function(){}}}删除库链接和检查代码片段是否提及console
  • 检查 IE 的设置并启用与调试相关的任何内容
  • 通过使用 s 加载第 3 方页面来检查 IE 是否被破坏console.log()(例如http://jsbin.com记录“init”和“runner”)
  • 换取console_window.console

所以控制台在那里并且处于活动状态,但实际控制台中没有显示控制台消息(在脚本选项卡或控制台选项卡上)。

还有什么可以阻止console.log()实际记录任何内容,即使开发人员工具已打开并且console.log是已定义的功能?

4

1 回答 1

2

在这种情况下,罪魁祸首原来是firebug lite

我的测试开发页面通常包括这个(具有讽刺意味的是)帮助 IE 中的某些类型的调试:

<!--[if IE]>
<script type="text/javascript" src="https://getfirebug.com/firebug-lite.js"></script>
<![endif]-->

由于它作为注释出现在文本编辑器中,因此很容易被意外忽略。

警报alert(console.log);前后显示 firebug lite将 console.log 函数从本机代码更改为:

function(){return f.apply(c,arguments)}

...由于某种原因(目前,这里)然后什么都不做。

没有 Firebug Lite 参与,alert(console.log);在 IE 中给出了这个:

function log() {
[native code]
}

...如果 f12 Dev Tools 已打开,则执行其通常的日志记录技巧,如果未打开则崩溃。

于 2014-01-24T00:00:58.800 回答