1

当用户意外离开我的 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>

如果我使用 JQuery 实现,它会在页面卸载时触发,但问题是它在执行后面的代码之前触发。所以我不能在客户端上设置一个变量,说这次不要触发事件,因为它是回发或保存。

$(window).bind('beforeunload', function () {
            return 'Are you sure you want to leave?';
        }); 

谁能指出我正确的方向,因为我知道我犯了基本的错误/错误理解?

编辑:

所以我快到了:

var提示=真;

$('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 ”。

有任何想法吗?

谢谢,迈克尔

4

2 回答 2

0

如果人们感兴趣,这是我的问题的迂回解决方案。如何判断 ASP 中的页面卸载是否是 PostBack

于 2012-05-02T16:09:57.880 回答
0

你可以尝试使用这个:

$(window).unload(function(){
  alert('Message');
});
于 2012-05-01T12:10:49.063 回答