如何挂钩浏览器发布的控制台错误和警告。由于内部浏览器错误

时间:2017-10-27 10:55:55

标签: javascript

如何挂钩浏览器发布的控制台错误和警告。由于内部浏览器错误。 我的意思是如何挂钩错误安全违规日志

******* ...... it violates the following Content Security Policy directive: "frame-src 'self' *.wholefoodsmarket.com https://*.google.com *.acquia-sites.com".

所以我想在一个var。

中获取控制台中存在的所有错误消息

我试图覆盖默认的控制台功能,但仍然无法挂钩 进入这些类型的日志。

我的代码现在

    var consoleLogFn = console.log;
    var consoleWarnFn = console.warn;
    var consoleErrorFn = console.error;
    window.jsErrors = window.jsErrors || [];
    console.log = function(){
        consoleLogFn.apply(console, arguments);
        var args = Array.prototype.slice.call(arguments);
        for(var i=0;i<args.length;i++){
            pushLog('log', args[i]);
        }
    }
    console.warn = function(){
        consoleWarnFn.apply(console, arguments);
        var args = Array.prototype.slice.call(arguments);
        for(var i=0;i<args.length;i++){
            pushLog('warn', args[i]);
        }
    }
    console.error = function(){
        consoleErrorFn.apply(console, arguments);
        var args = Array.prototype.slice.call(arguments);
        for(var i=0;i<args.length;i++){
            pushLog('error', args[i]);
        }
    }
    console.debug = function(){
        consoleErrorFn.apply(console, arguments);
        var args = Array.prototype.slice.call(arguments);
        for(var i=0;i<args.length;i++){
            pushLog('debug', args[i]);
        }
    }
    var pushLog = function(type, msg){
        window.jsErrors.push({
            'type': type,
            'message': msg,
        });
    }

0 个答案:

没有答案