在浏览器关闭按钮上发出警报,但不是每次加载页面

时间:2018-05-14 06:28:28

标签: javascript asp.net-mvc visual-studio

我希望代码提醒用户关闭浏览器的关闭按钮,但是我对每次加载或网页内的每次刷新和标签更改都会收到警报。



$client->authenticate($_GET['code']);
$access_token = $client->getAccessToken();

$client->setAccessToken($access_token);




1 个答案:

答案 0 :(得分:0)

您必须将警报框状态保存在任何位置,以便您可以检查用户是否已查看过一次。您可以保存警报框的状态,例如在本地存储中。我改变了代码。 首先在onload事件中,检查是否存在localStorage Item" showConfirmation"。如果没有,请使用字符串值" true"创建一个,否则只记录该值。 其次,在关闭之前,它会检查项目是否具有值" true"。如果是这样,返回一个字符串以显示警报消息。 第三,在window.close上你将项目设置为字符串" false",该消息将不再显示。

window.onload = checkLocalStorage;
window.onbeforeunload = askForClose;
window.unload = checkLocalStorage;

function checkLocalStorage() {
    if (localStorage.getItem("showConfirmation") === null) {
        localStorage.setItem("showConfirmation", "true");
    } else {
        console.log(localStorage.getItem("showConfirmation"));
    }
}

function askForClose() {
    var showConfirmation = localStorage.getItem("showConfirmation");
    if (showConfirmation === "true") {
        localStorage.setItem("showConfirmation", "false");
        return "You really want to close?";
    }
}