Javascript 如何捕获用户意外离开ASP.Net页面的时间

Javascript 如何捕获用户意外离开ASP.Net页面的时间,javascript,jquery,Javascript,Jquery,当用户意外地离开我的ASP.Net页面时,我需要提示他们是否确定要离开。回发邮件或单击“保存”按钮时不应触发警告。有很多文章都在讨论这一点,但我对这一点是全新的,似乎有点不对劲 建议的方法似乎是使用window.onbeforeunload事件,但对我来说,它的行为异常。这是在页面加载时触发的,而不是在页面卸载时触发的 <script language="JavaScript" type="text/javascript"> window.onbeforeunload = c

当用户意外地离开我的ASP.Net页面时,我需要提示他们是否确定要离开。回发邮件或单击“保存”按钮时不应触发警告。有很多文章都在讨论这一点,但我对这一点是全新的,似乎有点不对劲

建议的方法似乎是使用window.onbeforeunload事件,但对我来说,它的行为异常。这是在页面加载时触发的,而不是在页面卸载时触发的

<script language="JavaScript" type="text/javascript">
    window.onbeforeunload = confirmExit;
    function confirmExit() {
        return "You have attempted to leave this page.  If you have made any changes to the fields without clicking the Save button, your changes will be lost.  Are you sure you want to exit this page?";
    }
</script>
有人能告诉我正确的方向吗?因为我知道我犯了一些基本的错误/没有理解

编辑:

所以我就快到了:

var prompt=true

$('a').live('click', function () {

    //if click does not require a prompt set to false
    prompt = false;
});

$(window).bind("beforeunload", function () {

    if (prompt) {

        //reset our prompt variable
        prompt = false;

        //prompt
        return true;
    }
})
除了上述代码中的问题外,我需要能够区分单击,但我还没有弄清楚这一点,也就是说,如果单击不需要将提示设置为false,我在这里缺少一个条件

有什么想法吗

谢谢,
Michael

您可以尝试使用以下方法:

$(window).unload(function(){
  alert('Message');
});

如果人们感兴趣,这是我问题的迂回解决方案

谢谢-是的,这将触发一个警报,但不确定我是否可以让它抛出与window.onbeforeunload相同的通用提示,因为这是人们通常使用的提示。如果您正在使用数据库,请编写例程检查它。通过从前端推送user stat.onunload也是最接近onbeforeunload的,您需要做的就是测试并选择适合您的目标的onunload。请看这里哦,我刚才看到了这一点。让我检查一下。如果人们感兴趣,这是我问题的迂回解决方案。
$(window).unload(function(){
  alert('Message');
});