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 中得不到结果。