JavaScript 获得代码行号和脚本文件名

Posted 吃饭了吗

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript 获得代码行号和脚本文件名相关的知识,希望对你有一定的参考价值。

如果你使用的是 V8 引擎,Chrome 和 Node.js 所用的,那么你可以利用 javascriptStackTraceApi 来获得行号信息,有两个 API:

Error.captureStackTrace()
Error.prepareStackTrace()

在 Chrome 中可运行下面的代码:

01
02
03
04
05
06
07
08
09
10
11
12
var getStackTrace = function() {
  var obj = {};
  Error.captureStackTrace(obj, getStackTrace);
  return obj.stack;
};
 
function foo(){
    return getStackTrace();
}
 
alert("Stack:" + foo());
alert("Location:" + foo().split(/\n+/)[1].replace(/(^\s+|\s+$)/,""));

点击链接 http://fiddle.jshell.net/Unmi/EE9gM/ 在 Chrome 中运行类似的代码。在 Firefox/Safari 中得不到结果。


以上是关于JavaScript 获得代码行号和脚本文件名的主要内容,如果未能解决你的问题,请参考以下文章

java 脚本引擎Rhino执行js代码和文件

VSCode代码整理,加行号的问题

VSCode代码整理,加行号的问题

使用 git diff,如何获得添加和修改的行号?

C# 预处理器指令中的源代码和 PDB 文件中的行号

在针对 XML 模式验证 XML 文件时如何获取错误的行号