如何使用javascript循环浏览javascript控制台中的消息并将其显示给用户,例如将它们逐行添加到像div
这样的容器元素。
我了解如何使用console.log
向控制台添加消息,但我的问题是,有没有办法检索已添加的消息。
答案 0 :(得分:1)
要做到这一点,我们的想法是拦截发送到控制台的任何内容。这是一个跨浏览器解决方案。
function takeOverConsole(){
var console = window.console
if (!console) return
function intercept(method){
var original = console[method]
console[method] = function(){
var message = Array.prototype.slice.apply(arguments).join(' ')
// do sneaky stuff
if (original.call){
// Do this for normal browsers
original.call(console, message)
}else{
// Do this for IE
original(message)
}
}
}
var methods = ['log', 'warn', 'error']
for (var i = 0; i < methods.length; i++)
intercept(methods[i])
}
找到此信息
在这里我调用该函数,并做一个简单的日志&#34;嘿&#34;。它会拦截它,我会提醒截获的消息。 http://jsfiddle.net/Grimbode/zetcpm1a/
解释此功能的工作原理:
我们使用实际控制台声明变量console
。如果console
为undefined
,我们会立即停止并退出该功能。
我们为不同的控制台消息类型声明var methods = ['log', 'warn', 'error']
intercept
函数并发送console type
(字符串:&#39; log&#39;,&#39;警告&#39;等)。< / LI>
拦截功能只是将侦听器〜应用于该类型的控制台消息。在我们的例子中,我们正在应用一个监听器来记录,警告和错误。
我们检索邮件并将其放入邮件变量中。
由于我们截获了该消息,因此无法在控制台中显示该消息,因此我们继续使用original.call()或original()将其添加到控制台。
< / LI>