【发布时间】:2011-08-10 20:37:17
【问题描述】:
在我们的 Silverlight 应用程序中,我们打开了一个托管在新 HTML 页面中的新 Silverlight 控件,只要用户在二级页面加载之前没有点击浏览器关闭按钮,一切都会很好。然后两个浏览器窗口都消失了,没有任何警告。我尝试编写 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(关闭),那么两个窗口都会消失。
如上所述,我也尝试为 onbeforeunload 添加 javascript,但没有调用。非常丑陋的任何想法将不胜感激
【问题讨论】:
-
我也有这个问题,有没有人提出可能的原因或解决方案?
标签: windows silverlight