如何在按下后退按钮时阻止先前提交的模态弹出?

时间:2016-08-19 14:16:15

标签: javascript jquery

情况是这样的。我有一个bootstrap编码模式。当我单击一个提交按钮时,它会被触发并弹出一个包含yes或no加号框的框。因此,无论是单击是还是否,它都会关闭该框。其他一些页面也有这个弹出窗口。问题是,在模态关闭后,当我点击页面的后退按钮时,当没有触发触发它的javascript时,模态也会弹出。后退按钮的上一个代码就像

go.history(-1)

然后我尝试将其更改为

windows.history.back()
它根本没有帮助,它仍然会弹出模态。任何想法如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

您可以设置Cookie。当它存在时,根本不显示你的模态。

以下是一个例子:

注意:我将使用我找到here的代码段。

var cookieName = 'home_modal';
if(!readCookie(cookieName)){
    showModal();

    //the modal will not show up for 1 day
    createCookie(cookieName, 1, 1);
}

// #### [Base functions] ####

// Cookies
function createCookie(name, value, days) {
    if (days) {
        var date = new Date();
        date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
        var expires = "; expires=" + date.toGMTString();
    }
    else var expires = "";               

    document.cookie = name + "=" + value + expires + "; path=/";
}

function readCookie(name) {
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for (var i = 0; i < ca.length; i++) {
        var c = ca[i];
        while (c.charAt(0) == ' ') c = c.substring(1, c.length);
        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
    }
    return null;
}

function eraseCookie(name) {
    createCookie(name, "", -1);
}

function showModal() {
    //your modal logic goes here
}