Как определить исходную позицию скрипта из вызова автоматизации? - PullRequest
4 голосов
/ 15 декабря 2010

У меня есть хост скриптов, который запускает JScript. В некоторых случаях мне приходится отслеживать, вызван ли метод моих открытых объектов и откуда он был вызван. Для этого мне нужно определить, где находится движок скрипта внутри метода моего объекта.

Это должна быть та же информация, что и при вызове OnScriptError моего сайта: исходная строка char и файл cookie, который я передал в ParseScriptText.

Можно ли получить эту информацию без генерации ошибки?

1 Ответ

0 голосов
/ 22 декабря 2010

вы пробовали что-то вроде кода ниже?Это должно дать вам полную трассировку стека с именами функций и значениями аргументов, но без номеров строк.

Не знаю, что такое 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;
},
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...