如何获取 JavaScript 调用方函数行号和调用方源 URL

2022-08-30 04:50:49

我使用以下方法来获取JavaScript调用函数名称:

var callerFunc = arguments.callee.caller.toString();
callerFuncName = (callerFunc.substring(callerFunc.indexOf("function") + 8, callerFunc.indexOf("(")) || "anoynmous")

有没有办法发现从中调用该方法的行号?

另外,有没有办法获取从中调用该方法的JavaScript文件的名称?还是源网址?


答案 1

这在chrome / QtWebView中适用于我

function getErrorObject(){
    try { throw Error('') } catch(err) { return err; }
}

var err = getErrorObject();
var caller_line = err.stack.split("\n")[4];
var index = caller_line.indexOf("at ");
var clean = caller_line.slice(index+2, caller_line.length);

答案 2

kangax的解决方案引入了不必要的尝试。捕获范围。如果您需要访问JavaScript中某些内容的行号(只要您使用的是Firefox或Opera),只需访问.(new Error).lineNumber