JavaScript 中有没有办法监听控制台事件? [英] Is there a way in JavaScript to listen console events?

查看:41
本文介绍了JavaScript 中有没有办法监听控制台事件?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试在 Javascript 中为未捕获的异常和浏览器警告编写处理程序.所有错误和警告都应发送到服务器以供日后查看.

I'm trying to write handler for uncaught exceptions and browser warnings in Javascript. All errors and warnings should be sent to server for later review.

可以捕获并轻松记录已处理的异常

Handled exceptions can be caught and easily logged with

console.error("Error: ...");

console.warn("Warning: ...");

因此,如果它们是从 javascript 代码中调用的,则它们没有问题,甚至可以通过这种和平的代码捕获未处理的异常:

So they are not problem if they are called from javascript code, even more, unhandled exceptions could be caught with this peace of code:

window.onerror = function(){
    // add to errors Stack trace etc.
   });
}

所以异常被很好地覆盖了,但我一直坚持浏览器发送到控制台的警告.例如安全或 html 验证警告.下面的示例取自 Google Chrome 控制台

so exceptions are pretty covered but I've stuck with warnings which browser sends to console. For instance security or html validation warnings. Example below is taken from Google Chrome console

位于 https://domainname.com/ 的页面运行了来自http://domainname.com/javascripts/codex/MANIFEST.js.

The page at https://domainname.com/ ran insecure content from http://domainname.com/javascripts/codex/MANIFEST.js.

如果有诸如 window.onerror 之类的事件但用于警告,那就太好了.有什么想法吗?

It would be great if there is some event like window.onerror but for warnings. Any thoughts?

推荐答案

您可以自己包装 console 方法.例如,将每次调用记录在一个数组中:

You could just wrap the console methods yourself. For example, to record each call in an array:

var logOfConsole = [];

var _log = console.log,
    _warn = console.warn,
    _error = console.error;

console.log = function() {
    logOfConsole.push({method: 'log', arguments: arguments});
    return _log.apply(console, arguments);
};

console.warn = function() {
    logOfConsole.push({method: 'warn', arguments: arguments});
    return _warn.apply(console, arguments);
};

console.error = function() {
    logOfConsole.push({method: 'error', arguments: arguments});
    return _error.apply(console, arguments);
};

这篇关于JavaScript 中有没有办法监听控制台事件?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆