如何使用chrome或firefox在javascript中获取console.trace()的结果作为字符串?
2022-08-30 04:47:24
console.trace()
在控制台上输出其结果。
我想将结果作为字符串获取并保存到文件中。
我没有定义函数的名称,我也无法用.callee.caller.name
console.trace()
在控制台上输出其结果。
我想将结果作为字符串获取并保存到文件中。
我没有定义函数的名称,我也无法用.callee.caller.name
我不确定firefox,但是在v8 / chrome中,您可以在错误构造函数上使用一个名为.(更多信息请点击这里)captureStackTrace
)
因此,获得它的一种黑客方法是:
var getStackTrace = function() {
var obj = {};
Error.captureStackTrace(obj, getStackTrace);
return obj.stack;
};
console.log(getStackTrace());
通常,在捕获堆栈时,它将在堆栈上。其中的第二个参数排除在堆栈跟踪中。getStackTrace
getStackTrace
Error.stack是你需要的。它适用于Chrome和Firefox。例如
try { var a = {}; a.debug(); } catch(ex) {console.log(ex.stack)}
将给出铬:
TypeError: Object #<Object> has no method 'debug'
at eval at <anonymous> (unknown source)
at eval (native)
at Object._evaluateOn (unknown source)
at Object._evaluateAndWrap (unknown source)
at Object.evaluate (unknown source)
在火狐中:
@http://www.google.com.ua/:87 _firebugInjectedEvaluate("with(_FirebugCommandLine){try { var a = {}; a.debug() } catch(ex) {console.log(ex.stack)}\n};")
@http://www.google.com.ua/:87 _firebugEvalEvent([object Event])
@http://www.google.com.ua/:67