如何在用户尝试关闭选项卡或关闭浏览器时通知用户

时间:2012-09-05 08:51:18

标签: silverlight

首先,我总是这样说:抱歉我的英语很弱。我希望你能好好理解我。

我需要在用户尝试关闭标签页或关闭浏览器时通知用户。 有没有办法解雇一个事件,以避免浏览器被关闭? 该应用程序是在silverlight中制作的。

提前致谢。

2 个答案:

答案 0 :(得分:4)

看一下以下示例,还有一个示例应用程序:

http://www.blog.jonnycornwell.com/2011/01/23/using-silverlight-and-javascript-to-prevent-leaving-a-webpage/

这是关于使用Silverlight和JavaScript来防止离开网页。

javascript:

<script language="javascript" type="text/javascript">
window.onbeforeunload = askConfirm;
function askConfirm() {
    var control = document.getElementById("silverlightControl");
    var preventLeave = control.Content.Page.PreventLeave();
    if (!preventLeave) {
        return;
    }
    var message = control.Content.Page.LeaveRequested();
    return message;
}
</script>  

银光代码:

public MainPage()
{
    InitializeComponent();
    HtmlPage.RegisterScriptableObject("Page", this);
}

[ScriptableMember]
public string LeaveRequested()
{
    return "You have unsaved changes to your current document?";
}

[ScriptableMember]
public bool PreventLeave()
{
    return (bool)PreventLeaveCheckBox.IsChecked;
}

答案 1 :(得分:0)

这可以通过javascript轻松完成。例如:

<html>
    <head>
    <script type="text/javascript">
    <!--
        function closeIt(url,name)
        {
            return "Hi there! I'm a message!";
        }
        window.onbeforeunload = closeIt;
    // -->
    </script>
    </head>

    <body>
    <p>I'm a webpage!</p>
    </body>
</html>

<html> <head> <script type="text/javascript"> <!-- function closeIt(url,name) { return "Hi there! I'm a message!"; } window.onbeforeunload = closeIt; // --> </script> </head> <body> <p>I'm a webpage!</p> </body> </html>