Closed. 这个问题不符合堆栈溢出指南 /help/closed-questions 。目前不接受答案。
关于如何以跨浏览器的方式在 javascript 中生成堆栈跟踪有什么建议吗?
较新的浏览器(Chrome 和 Firefox)公开了一个允许生成堆栈跟踪的控制台对象。此方法不提供将堆栈跟踪存储到变量的方法。
https://github.com/eriwen/javascript-stacktrace https://github.com/eriwen/javascript-stacktrace 工作得很好,但它会发出单独的 ajax 请求来加载作为跟踪一部分包含的脚本文件。这似乎是跟踪库中的常用方法。我猜测浏览器没有公开足够的信息来生成有意义的堆栈跟踪(行号、函数名、文件名、参数等)。
创建一个 Error 对象并检查它的堆栈成员。改编自代码泛音 http://www.codeovertones.com/2011/08/how-to-print-stack-trace-anywhere-in.html :
var e = new Error('dummy');
var stack = e.stack.replace(/^[^\(]+?[\n$]/gm, '') // remove lines without '('
.replace(/^\s+at\s+/gm, '') // remove prefix text ' at '
.split('\n');
console.log(stack);
Error.stack 记录在Mozilla 的参考文档 https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Error/prototype .
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)