每个会话只有一次模态弹出

Modal Popup Only once per session

如何在每个会话中显示一次此对话框弹出窗口,我看到了 cookies 配置,但我无法将其应用于这种情况:

$(document).ready(function() {
    ShowDialog(true);
    e.preventDefault();
});

$("#btnClose").click(function(e) {
    HideDialog();
    e.preventDefault();
});

function ShowDialog(modal) {
    $("#overlay").show();
    $("#dialog").fadeIn(300);

    if (modal) {
        $("#overlay").unbind("click");
    } else {
        $("#overlay").click(function(e) {
            HideDialog();
        });
    }
}

function HideDialog() {
    $("#overlay").hide();
    $("#dialog").fadeOut(300);
}

这是一个示例:CoverPop 结合我的代码,我该如何申请?

您可以使用 sessionStorage (HTML 5) 来保留一个值,让您知道您是否已经显示了弹出窗口。

http://www.w3schools.com/Html/html5_webstorage.asp

您可以在这部分修改您的代码:

 $("#btnClose").click(function (e)
  {
     HideDialog();
     e.preventDefault();
     sessionStorage["PopupShown"] = 'yes'; //Save in the sessionStorage if the modal has been shown
  });

然后你可以在你的 document.ready 每次被这样调用时验证:

$(document).ready(function ()
{
     if(sessionStorage["PopupShown"] != 'yes'){ 
         ShowDialog(true);
         e.preventDefault();
     }
});

这应该可行,如果您对此方法有任何疑问,请告诉我。