Tag: 日志记录

导航后捕获iframe的console.log消息

我想捕获iframe导航后立即从iframe生成的日志消息。 目前我有这样的事情: $(iframe).bind(“load”, null, function() { var logsToCapture = [“log”, “info”, “debug”, “warn”, “error”]; logsToCapture.forEach(function captureLogs(logType) { var original = iframe.contentWindow.console[logType]; iframe.contentWindow.console[logType] = function() { logUtil.log.apply(logUtil, arguments); original.apply(iframe.contentWindow.console, arguments); }; }); }); 这工作正常,但它只捕获初始页面加载后的消息。 我特别感兴趣的是获取加载过程中出现的消息,因为有问题的页面在启动过程中会发出大量日志。 我尝试绑定到“就绪”而不是“加载”,因为“就绪”首先触发,但之后没有捕获任何事件。

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

我正在尝试使用console.log将一些日志记录放入我程序的javascript端。 但是我注意到,除非在IE中打开开发控制台,否则JS在命中console.log时基本停止工作。 这很痛苦……这意味着每当我想进行生产构建时,我都必须删除所有日志记录。 除了显而易见的: function DoSafeConsoleLog( parameters ) { if ( !$.browser.msie ) { console.log( parameters ); } } 有没有一种很好的方法来记录对所有主流浏览器友好的JavaScript? 编辑: 好吧,看完重复的post(哎呀)以及在这里考虑答案之后,我一定要在调用前检查控制台是否存在。 尽管我不愿意获得额外的标记,但我宁愿不要踩到可能想要使用Firebug Lite调试代码的未来程序员。

在IE中写入脚本控制台(console.log)的正确方法是什么?

我有这个替换在document.ready()定义的console.log : $(document).ready(function(){ console.log(“doc ready”); if(typeof console === “undefined”){ console = { log: function() { } }; } } 我认为IE应该有这个function,但是,当我包括上面的调用时 console.log(“doc ready”); 输出显示在Firefox控制台中但不在IE中 – 实际上IE脚本执行在此时完全中断。 在IE中写入控制台的正确方法是什么?

$(’h1’)如何在jQuery中作为数组登录到Web控制台?

如果你在浏览器中执行console.log($(‘some selector’)) ,它将返回看起来像数组的内容(第一行): 但请注意,它不是instanceof Array的instanceof Array ,但它实际上是jQuery对象 。 当你执行console.dir($(‘h1’)) ,它显示它实际上是jQuery对象。 问题是,它们如何使它看起来像是Web控制台中的数组? 我注意到在jQuery源代码中它们添加了一些Array和Object方法的引用,并且在这里它们将toArray (以及slice和其他)添加到jQuery对象。 Web控制台是否以某种方式检查这些方法,如果找到一个( toArray , indexOf , slice等),它会将其打印为数组吗? 我想从任何自定义对象中获取此行为,例如Ember.ArrayProxy 。 目前,当您记录Ember.ArrayProxy它显示> Object或其他,但将它显示为数组会很不错。 有任何想法吗?

我如何在Chrome中控制jQuery DOM元素?

我曾经能够做console.log(somejQueryObj); 并且它在数组中记录了我可以单击并转到检查器的对象中的所有DOM元素。 现在它做了这样的事情: [prevObject:p.fn.p.init [1],context :, selector:“。next()”] 这会让很多人感到困惑。 我该怎么做才能让Chrome记录它用于记录jQuery元素的方式? 这是一个小提琴的例子 我在: 谷歌浏览器23.0.1271.97(官方版本171054)m