繁体   English   中英

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

[英]Print javascript error in custom console

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

有办法实现吗?

如果只是您要捕获的错误,则其中一些将转到window.onerror处理程序

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;
};

您可以使用几行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 TJ Crowder对每个评论的改进。 这是可能的非常基本的解决方案,它也支持错误捕获:

 // 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> 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM