打印 javascript 控制台的堆栈跟踪

printing stack trace of javascript console

我正在尝试在文本区域中键入 javascript 代码并将其结果显示在 div 中。 我经历了一个类似的问题: showing-console-errors-and-alerts-in-a-div-inside-the-page

它适用于任何明确的控制台语句。但是当文本区写的代码有任何语法错误时,错误信息只显示在控制台上,而不会在代码中捕获。

我使用的代码是:

if (typeof console  != "undefined") 
    if (typeof console.log != 'undefined')
        console.olog = console.log;
    else
        console.olog = function() {};

    console.log = function(message) {
    console.olog(message);
    $('#result').append('<p>' + message + '</p>');
};
console.error = console.debug = console.info =  console.log

如果我在文本区域中键入 console.log("hello"),这将起作用。 但是当我故意输入 console.log("he 时,错误仅显示在浏览器控制台中。有什么方法可以捕获此类消息并显示出来吗?

浏览器控制台的操作方式相同。

try...catch 添加到您的代码中。

可以用window.onerror解决问题,试试

window.onerror = function(e) {
  console.log(e.stack);
}