Поэтому я использую событие onbeforeunload, чтобы закрыть все дочерние окна (изображения), которые были открыты из моего родительского окна.Код, с которым я работаю, старый, и родительское окно выполняет много постбэков для различных операций, поэтому я отслеживаю изображения на стороне сервера и добавляю атрибут onbeforeunload в тело, когда мне это нужно.
Когда окно закрывается, код на стороне сервера пишет скрипт, который просто вызывает функцию Javascript со строковым параметром.Javascript работает нормально, проблема в том, что он не всегда получает удар.
Мой код на стороне сервера выглядит так:
private void CloseAllChildren()
{
// some code to retrieve image window names...
string script = "closeAllChildren('imagewindowname1,imagewindowname2,etc');";
_body.Attributes.Add("onbeforeunload", script);
}
И метод close, который вызывается при закрытиисобытие вызвано:
private void Close()
{
// A bunch of code...
// close the window after all folders have been routed
CloseAllChildren();
this.Response.Write(FolderView.WindowClose);
}
Я ничего не знаю с компьютерами случайным образом, но мои результаты, похоже, не соответствуют какой-либо схеме.Иногда он попадает в Javascript и работает отлично, иногда он никогда не попадает в Javascript при одинаковых условиях тестирования.Я предполагаю, что есть какое-то состояние гонки, но я не уверен, как обнаружить или исправить это.У кого-нибудь есть опыт с этим или лучший способ сделать это?Как я уже сказал, код старый и это небольшое дополнение к функциональности, поэтому я не хочу менять какие-либо текущие фреймворки.
Заранее спасибо.