4

JScript を実行するスクリプト ホストがあります。公開されたオブジェクトのメソッドが呼び出されたかどうか、およびどこから呼び出されたかを追跡する必要がある場合があります。そのためには、スクリプト エンジンが現在オブジェクトのメソッド内のどこにあるかを判断する必要があります。

これは、私のサイトの OnScriptError が呼び出されたときと同じ情報である必要があります: ソース行 source char と、ParseScriptText に渡した Cookie。

エラーを発生させずにこの情報を取得することは可能ですか?

4

1 に答える 1

0

以下のコードのようなものを試しましたか?これにより、関数名と引数値を含む完全なスタック トレースが得られますが、行番号はありません。

ParseScriptText が何かわかりません。

( https://github.com/emwendelin/Javascript-Stacktraceおよびhttp://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 に答える