4

我有一个运行 JScript 的脚本主机。在某些情况下,我必须跟踪是否调用了我的暴露对象的方法以及调用它的位置。为此,我需要确定脚本引擎当前在我的对象方法中的位置。

它应该与调用我网站的 OnScriptError 时的信息相同:源代码行 source char 和我传递给 ParseScriptText 的 cookie。

是否可以在不产生错误的情况下获取此信息?

4

1 回答 1

0

你试过类似下面的代码吗?这应该为您提供完整的堆栈跟踪,其中包含函数名称和参数值,但没有行号。

不知道 ParseScriptText 是什么。

(来自https://github.com/emwendelin/Javascript-Stacktracehttp://eriwen.com/javascript/stacktrace-update/

other: function(curr) {
    var ANON = '{anonymous}', fnRE = /function\s*([\w\-$]+)?\s*\(/i,
        stack = [], fn, args, maxStackSize = 10;

    while (curr && stack.length < maxStackSize) {
        fn = fnRE.test(curr.toString()) ? RegExp.$1 || ANON : ANON;
        args = Array.prototype.slice.call(curr['arguments']);
        stack[stack.length] = fn + '(' + this.stringifyArguments(args) + ')';
        curr = curr.caller;
    }
    return stack;
},
于 2010-12-22T12:56:08.427 回答