1

我有一个silverlight应用程序,我想捕获浏览器的关闭事件。所以,我做什么,我在.aspx页面中我有这样的代码Silverlight 4:OnBeforeUnload

function closeIt() { 
     return "Any string value here forces a dialog box to \n" + 
    "appear before closing the window."; 
    } 


    window.onbeforeunload = closeIt; 

如果这个功能触发,一个popupwindow会出现,你有2个按钮确定和取消。

在silverlight或服务器端有没有办法获得用户点击的价值?

谢谢

+0

对我以前的问题相同的解决方案http://stackoverflow.com/questions/3456591/silverlight-4-f5-refresh – xscape 2010-08-27 02:27:03

回答

0

为什么不使用MessageBox?这里的代码示例:

MessageBoxResult result = MessageBox.Show("Text","Title",MessageBoxButton.OKCancel); 
if (MessageBoxResult.OK==result) 
{ 

} 
else if (result == MessageBoxResult.No) 
{ 

} 

这将让你确定一个弹出窗口,并用非常简单的方式取消窗口,以确定用户是否点击确定或没有。

+0

它的目的是捕获浏览器的关闭事件。 – xscape 2010-08-13 06:34:48

1

我不知道我完全理解你的问题,它看起来像你正在写javascript。但你的主题是silverlight。反正....

最简单的方法是利用的Html确认或者在Silverlight:

bool result = System.Windows.Browser.HtmlPage.Window.Confirm("Really..?"); 

或直的JavaScript:

var result = window.Confirm("Really...?"); 

要获得价值,你可以存储在服务器在隐藏文本字段中的值并将其发布到服务器。

0

答案与我之前关于window.close的其他问题的答案几乎一样。

当用户选择Cancel时,绝对不会发生任何事情。如果他们选择OK,那么您的Application_Exit将运行。

+0

谢谢,但那就是我想要捕获取消事件。 – xscape 2010-08-17 01:12:41