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

Print javascript error in custom console

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

有办法实现吗?

如果您只是想捕获错误,其中一些 将转到 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;
};

您可以创建非常简单的自定义 "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());
<pre id="console"></pre>

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

UPD。每条评论改进 T.J。拥挤。这是可能的非常基本的解决方案,它也支持错误捕获:

// 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;
<pre id="console"></pre>