Странная ошибка AJAX / JS в ASP.NET и инфраструктуре NetAdvantage - PullRequest
0 голосов
/ 04 июня 2009

У меня довольно простое веб-приложение для сбора данных.

В главном окне захвата при сохранении строки в UltraWebGrid, в зависимости от определенных флагов, открываются еще два окна (с ScriptManager.RegisterStartupScript).

Одно из окон, отлично работает.

Другой, когда он закрывается (с помощью собственного ScriptManager.RegisterStartupScript), вызывает следующую ошибку в Firefox В ОСНОВНОМ ОКНЕ:

Sys не определен Sys $ CultureInfo $ _getAbbrMonthIndex ("") ScriptRe ... = 7c12e347 (строка 6391) ? в ScriptResource.axd?d=Bx90cRohr9iY-lmxXmy5QYd7JgQApS0Xh-xBfl6hEe8d-0h4pCZYQQKgxdo97mKzaD5488jiBZ8TOSa4-cOPaw2&t=4e25e9 [Перерыв на этой ошибке] this._upperAbbrMonths = this ... s.dateTimeFormat.AbbreviatedMonthNames);

И после этого Firefox сходит с ума, перестает работать навигация по вкладкам, каждый ввод текста в окне (включая адресную строку и окно поиска) рисует свое содержимое, как если бы они были выделены (все одновременно) и все остальное перестать вести себя довольно странно. Я должен закрыть окно и снова открыть его, иногда мне даже приходится убивать процесс.

Я много чего пробовал, и, похоже, ничего не работает. Я сравниваю два aspx-файла в вышеупомянутых окнах, и ничто на самом деле не отличается.

Это заставляет меня безумно сумасшедшим.

Кто-нибудь имел эту ошибку раньше? Есть идеи? Хаки? Указатели

Большое спасибо.

Ответы [ 2 ]

1 голос
/ 05 июня 2009

Короткий ответ: управление окнами (открытие и закрытие) в браузере - не веселая и не тривиальная задача. Вы должны убедиться, что все выполняющиеся сценарии завершены, прежде чем закрывать окно. В вашем случае кажется, что при закрытии окна все еще выполнялся скрипт инициализации. В этот момент DOM уничтожается, и скрипт начинает пытаться получить доступ к уже удаленным элементам. Тайм-аут это взломать легкие. Лучшее решение - использовать WebDialogWindow (также в NetAdvantage), который открывает «окна», которые на самом деле являются элементами на одной странице. Таким образом, вы можете управлять им, не полагаясь на постбэки и скрипты, и вам не придется бороться с получением данных из отдельного окна.

0 голосов
/ 05 июня 2009

Хотя я не знаю точно, почему ошибка была вызвана

ScriptManager.RegisterStartupScript (Page, Page.GetType (), "ЗАКРЫТЬ", "window.close ()");

В другом окне есть похожая вещь, но это не вызвало ее.

Я исправил это, обернув window.close () в setTimeout ("window.close ();", 500).

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

Ура!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...