【问题标题】:How to notify an user when he tries to close a tab or close the browser当用户尝试关闭选项卡或关闭浏览器时如何通知用户
【发布时间】:2012-09-05 17:02:42
【问题描述】:

首先,我总是这么说:对不起,我的英语很差。我希望你能理解我。

当用户尝试关闭选项卡或关闭浏览器时,我需要通知他。 有什么方法可以触发事件以避免浏览器被关闭? 该应用程序是在 Silverlight 中制作的。

提前致谢。

【问题讨论】:

标签: silverlight


【解决方案1】:

看看下面的例子,还有一个示例应用:

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;
}

【讨论】:

  • 嗨,感谢 awnser,它看起来不错,但我总是收到 javasript 错误,因为 document.getElementById("silverlightControl") = null 我想我忘记了一些东西。有人可以帮帮我吗?
  • 我解决了!我发现 document.getElementById("xxxx") name 在 中设置了id
  • @Mirlo 您必须将“silverlightControl”更改为您的控件名称
【解决方案2】:

这可以通过 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>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-11
    • 2014-07-01
    • 1970-01-01
    • 2014-10-12
    • 2012-08-08
    • 1970-01-01
    相关资源
    最近更新 更多