Silverlightアプリでは新しいSilverlightコントロールを新しいHTMLページで開きます。ユーザーがセカンダリページの前にブラウザの閉じるボタンを押していない限り、ロードする。両方のブラウザウィンドウが警告なしで消えます。私はonbeforeunloadを処理するためにJavascriptを書きましたが、これは呼び出されませんでした。アイデアは、この行動が悪い可能性があることをユーザーに警告することでした。だから私は、問題をREPROする本当の簡単なサンプルアプリケーションを作成し、ここでは、NI-Litesのとおりです。Silverlightアプリが1つのウィンドウを閉じても親ウィンドウも閉じます
は親ページにボタンを追加します。
HtmlPage.Window.Navigate(new Uri(String.Format("TestControlTestPage.aspx"),
UriKind.Relative), "searchresults",
"directories=no,location=no,menubar=no,status=yes,toolbar=no,resizable=yes");
これは新しいSilverlightをホスティングする新しいHTMLページを開きます制御、newControlここで、私は次のように私たちは、サーバーからいくつかのものをロードする必要があります我々のアプリの状況をシミュレートする:だから遅延がロードされたメソッドが呼び出される前にそこにある
public MainPage()
{
InitializeComponent();
Loaded += new RoutedEventHandler(MainPage_Loaded);
System.Threading.Thread.Sleep(10000);
}
void MainPage_Loaded(object sender, RoutedEventArgs e)
{
}
、と私はXを押した場合( Close)を呼び出すと、両方のウィンドウが消えますr。
私はまた、onbeforeunloadのjavascriptを追加しようとしましたが、これは呼び出されませんでした。プリティ醜い任意のアイデアは
私もこの問題を抱えていますが、誰かが考えられる原因や解決策を思い付いていますか? – ginman