Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Узнать строку и символ, где возникла ошибка (вопрос по eval и new Function) (https://javascript.ru/forum/misc/31820-uznat-stroku-i-simvol-gde-voznikla-oshibka-vopros-po-eval-i-new-function.html)

melky 22.09.2012 00:30

Цитата:

Сообщение от Maxmaxmахimus (Сообщение 205818)
melky,
тред не читал да? нужно в eval и Function.
ПО сути моджно все это вставлять в тек script и по нему мерить onerror'ом

ото ж.


...
<script>



window.onerror = function (description, url, line) {
    alert("Где возникла ошибка : " + url + "\n\nОшибка на линии : " + line + "\n\nСама ошибка : " + description);
    return true;
};

function superEval (code) {
    var doc = document;
    doc.body.appendChild(doc.createElement("script")).innerHTML = code;
}

superEval("alert('Hello World!');\n\n\n\n      LOL");

</script>

FINoM 22.09.2012 00:37

melky, а как узнать, что ошибка именно в целевом скрипте, а не каком-то другом? Я вижу только вариант с айфреймом (для каждого скрипта создавать айфрейм).

melky 22.09.2012 01:01

Цитата:

Сообщение от FINoM (Сообщение 205825)
melky, а как узнать, что ошибка именно в целевом скрипте, а не каком-то другом? Я вижу только вариант с айфреймом (для каждого скрипта создавать айфрейм).

если скрипт подключается через тег, то там будет url - в обработчике.

если через ajax берётся и eval'тся, то надо как-то отыскивать этот скриптец. мб просто реализовать стековый тип данных ?? (последним вошёл, последним вышел)

FINoM 22.09.2012 01:31

melky, фиг знает, слишком геморно. Наверно, все-таки, айфрейм.
Цитата:

Сообщение от Maxmaxmахimus
вообще если архитектура приложения дошла до таких извратов это повод сделать рефакторинг или начать все с нуля.

Ты мне скажи сперва, как решить задачу, которую я определил в первом посте и как по-твоему должна выглядеть архитектура.

FINoM 22.09.2012 02:56

Вот, собсно: http://jsfiddle.net/P4BSx/


Часовой пояс GMT +3, время: 12:05.