javascript - console.log() 已定义但未登录 IE - 空控制台

标签 javascript internet-explorer logging ie-developer-tools firebug-lite

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

尝试过的事情:

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

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

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

最佳答案

在这起案件中,罪魁祸首竟然是 firebug lite

我的测试开发页面经常包含这个(具有讽刺意味的是)以帮助在 IE 中进行某些类型的调试:

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

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

在显示 firebug lite 之前和之后提醒 alert(console.log); 将 console.log 函数从 native 代码更改为:

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

...出于某种原因(目前,此处)然后什么都不做。

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

function log() {
[native code]
}

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

关于javascript - console.log() 已定义但未登录 IE - 空控制台,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21321872/

相关文章:

javascript - ie11 css 旋转 - 背景元素不可点击

javascript - 加载不同的CSS到IE

java - gradle junit 测试使用 slf4j 进行日志记录

javascript - 避免在 Vuetify 对话框中直接改变 prop 错误

javascript - 仅当条件为真时才执行函数

html - CSS page-break-after 和 float 不能很好地播放?

java - 如何让 OpenEJB 使用 slf4j?

java - 将 slf4j 路由到 log4j,而不是相反

javascript - 添加 tinymce 4 后,textarea 事件不起作用

javascript - 使用 babel 和 webpack 减少转译代码助手