Javascript-保持当前页面不起作用

时间:2014-09-01 16:14:37

标签: javascript jquery onbeforeunload

我想在用户导航到另一个页面时显示确认消息。

但是我遇到了一个问题,如果用户选择“留在当前页面上”,浏览器会将用户带到另一个页面。

请参阅下面的代码。

var onBeforeUnloadFired = false;

   window.onbeforeunload = function(){
    if ($("#aspnetForm").serialize() != form_original_data){
        if(!onBeforeUnloadFired){
            onBeforeUnloadFired = true;
            event.returnValue =  "No changes have been saved. Are you sure you wish to cancel?";              
        }
        window.setTimeout("ResetOnBeforeUnloadFired()", 0);
    }
};

function ResetOnBeforeUnloadFired() {
    onBeforeUnloadFired = false;
} 

由于

3 个答案:

答案 0 :(得分:0)

不要知道这些变量上下变化。我做了:

window.onbeforeunload = function(){
    if ($("#aspnetForm").serialize() != form_original_data){        
        return "No changes have been saved. Are you sure you wish to cancel?;"                   
    }
}

答案 1 :(得分:0)

您使用的是哪种浏览器?如果不是IE使用

$(window).on('beforeunload', function() {

});

答案 2 :(得分:0)

我遇到了这个问题,我发现它与此问题有关:

onbeforeunload Message Appears Twice (Internet Explorer)

基本上使用setTimeout局部变量技巧暂时禁用处理程序掩盖了在我的代码中使用window.location =“some url”而不是window.location.href =“some location”的基本问题。

一旦我改变了

window.location = "..."

window.location.href = "..."

“留在当前页面”没有工作的问题消失了。