в нашем приложении Silverlight мы открываем новый элемент управления Silverlight, размещенный на новой HTML-странице, и все работает отлично, пока пользователь не нажимает кнопку закрытия браузера до загрузки дополнительной страницы. Тогда оба окна браузера исчезают без предупреждения. Я пытался написать Javascript для обработки onbeforeunload, но даже это не вызывалось. Идея заключалась в том, чтобы предупредить пользователя, что это действие может быть плохим. Затем я пишу очень простой пример приложения, чтобы воспроизвести проблему, и вот ni-lites:
добавить кнопку на родительскую страницу:
HtmlPage.Window.Navigate(new Uri(String.Format("TestControlTestPage.aspx"),
UriKind.Relative), "searchresults",
"directories=no,location=no,menubar=no,status=yes,toolbar=no,resizable=yes");
Откроется новая HTML-страница с новым элементом управления Silverlight, newControl, и здесь я моделирую ситуацию в нашем приложении, где мы должны загрузить некоторые вещи с сервера следующим образом:
public MainPage()
{
InitializeComponent();
Loaded += new RoutedEventHandler(MainPage_Loaded);
System.Threading.Thread.Sleep(10000);
}
void MainPage_Loaded(object sender, RoutedEventArgs e)
{
}
Таким образом, существует задержка перед вызовом загруженного метода, и если я нажму X (Закрыть) до вызова загруженной страницы, то оба окна исчезнут.
как упомянуто выше, я также попытался добавить javascript для onbeforeunload, но это не вызывалось. Довольно уродливые идеи будут оценены