Почему не будет этот JavaScript (использующий document.open и document.write) работа в Internet Explorer или Opera?

Поскольку Windows проверяет StackWalk64 () API (также в Windows на 32 бита). Для UNIX необходимо использовать собственный способ ОС сделать это, или нейтрализация к следу glibc (), если availabe.

Примечание однако, что взятие Stacktrace в собственном коде редко является хорошей идеей - не потому что это не возможно, но потому что Вы usally пытаетесь достигнуть неправильной вещи.

Большую часть времени люди пытаются вложить stacktrace, скажем, исключительное обстоятельство, как то, когда исключение поймано, утверждать сбои или - худший и самый неправильный из них всех - когда Вы получаете фатальное "исключение" или сигнал как нарушение сегментации.

Рассмотрение последней проблемы, большинство API потребует, чтобы Вы явно выделили память, или может сделать это внутренне. Выполнение так в уязвимом государстве, в котором Ваша программа может в настоящее время быть в, может acutally сделать вещи еще хуже. Например, отчет о катастрофическом отказе (или coredump) не отразит фактическую причину проблемы, но Вашу неудачную попытку обработать его).

я предполагаю, что Вы пробуете к achive, что вещь фатальной обработки ошибок, поскольку большинство людей, кажется, пробует это когда дело доходит до получения stacktrace. Если так, я полагался бы на отладчик (во время разработки) и разрешение процессу coredump в производстве (или мини-дамп на окнах). Вместе с надлежащим управлением символа Вы не должны испытывать никакие затруднения при расчете вскрытия инструкции по порождению.

7
задан Bungle 15 November 2009 в 13:35
поделиться

5 ответов

, если я уберу внутренности функции render () (то есть просто помещу их после load () в main.js), это сработает нормально.

Не для меня. в IE8. Если я полностью потеряю вызов AJAX и просто вызову render () в main.js, я получу тот же результат. Фактически, даже если я заменю весь main.js на just:

document.write('hello!');

с открытием документа или без него, приветствие никогда не появится!

Если я поставлю таймаут (даже 0) на вызов render в main.js, работает. С другой стороны, тайм-аут в родительском документе, похоже, ничего не делает.

Эта крайняя странность вызвана тем, что jQuery использует временно вставленный тег