在自定义控制台中打印javascript错误

时间:2015-02-10 13:59:29

标签: javascript console

我的浏览器没有任何控制台。 我需要将输出重定向到我自己的主控台。

有没有办法实现这个目标?

2 个答案:

答案 0 :(得分:3)

如果只是想要捕获的错误,那么其中一些会转到window.onerror handler

window.onerror = function(errorMsg, url, lineNumber) {
  // ...do something with the information...

  // Return false if you want to prevent the browser's default behavior
  return false;
};

答案 1 :(得分:1)

您可以创建非常简单的自定义" console"几行HTML和JavaScript。例如:



var xConsole = {
    log: function(msg) {
        var output = '<div>' + msg + '</div>';
        document.getElementById('console').insertAdjacentHTML('beforeend', output);
    }
};

xConsole.log('test');
xConsole.log(new Date().getTime());
&#13;
<pre id="console"></pre>
&#13;
&#13;
&#13;

然后,您需要将此HTML行放在文档中的某个位置(或动态附加它)。您也可以使用一些CSS来设置它或根据需要定位它。

<强> UPD 即可。 T.J.的评论改进克劳德。这里有一个非常基本的解决方案,也可以支持错误捕获:

&#13;
&#13;
// uncomment below line and remove "if (true) {" when used in real world
//if (!window.console) {
if (true) {
    
    window.console = function() {
        
        var _ = {};
        
        _.log = function(msg) {
            var output = '<div>' + msg + '</div>';
            document.getElementById('console').insertAdjacentHTML('beforeend', output);
        };
        
        window.onerror = function(errorMsg) {
            _.log(errorMsg);
        };
        
        return _;
    }();
}

// Should log simple message
console.log('test message');

// Should log reference error
test + 1;
&#13;
<pre id="console"></pre>
&#13;
&#13;
&#13;