在我们的 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,但这没有被调用。非常丑陋任何想法将不胜感激
最佳答案
试试我的 Stopping a user from leaving a Silverlight page 解决方案
我不确定您之前使用 onbeforeunload 失败的原因,因为它运行良好,但也许您发布了该 javascript 代码,我们可以解决该问题。
关于windows - Silverlight 应用程序关闭一个窗口也会关闭父窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7017459/