Javascript 如何允许弹出窗口继续弹出,即使你移动到另一个页面&;仅在单击按钮时停止?

Javascript 如何允许弹出窗口继续弹出,即使你移动到另一个页面&;仅在单击按钮时停止?,javascript,jquery,html,css,popup,Javascript,Jquery,Html,Css,Popup,例如,我有3个HTML页面 我有一个javascript弹出代码,每次加载时都会在所有3个页面中弹出。 我有一个关闭按钮,当点击时,关闭弹出窗口。然而,一旦打开第2页或第3页,弹出窗口将再次加载 我的目标输出是: 我想能够使弹出窗口,而不是弹出,每当关闭按钮是在任何页面点击一次 我正在考虑这个饼干的事情,虽然这是一个想法,但到目前为止我仍然无法想出一个解决方案 请。。。如有任何帮助,将不胜感激 虽然有3个页面在这里不太适用,但我仍然创建了一个JSFIDLE,仅用于文档编制和快速参考 多谢各位 H

例如,我有3个HTML页面

我有一个javascript弹出代码,每次加载时都会在所有3个页面中弹出。 我有一个关闭按钮,当点击时,关闭弹出窗口。然而,一旦打开第2页或第3页,弹出窗口将再次加载

我的目标输出是: 我想能够使弹出窗口,而不是弹出,每当关闭按钮是在任何页面点击一次

我正在考虑这个饼干的事情,虽然这是一个想法,但到目前为止我仍然无法想出一个解决方案

请。。。如有任何帮助,将不胜感激

虽然有3个页面在这里不太适用,但我仍然创建了一个JSFIDLE,仅用于文档编制和快速参考

多谢各位

HTML:

Javascript:

    $(document).ready(function(){

        $("#popupBox").slideDown("slow");
        window.setTimeout(function() {
            $("#popupBox").slideUp("slow");
        },300000);

        $(".close").click(function(){
            $("#popupBox").slideUp();
        });
    });

您可以使用
localStorage
-Object()进行以下操作:

$(document).ready(function(){


    if( localStorage.getItem("popup") !== 'closed'){
        $("#popupBox").slideDown("slow");            
     }
     window.setTimeout(function() {
         $("#popupBox").slideUp("slow");
      },300000);

    $(".close").click(function(){
        $("#popupBox").slideUp();
        localStorage.setItem("popup", "closed");
    });
});
localStorage(无过期!)和sessionStorage(在browsertab关闭时获取delete)之间存在差异。请阅读我链接的参考资料以了解更多信息

请注意,
localStorage
中的所有值都存储为字符串。如果需要布尔值或整数,则必须转换它们

localStorage
-对象例如适用于IE,自版本8起可用。要支持较旧的浏览器,请使用:

我发现的另一种方法(值得分享)是,在调用“URL参数”时重置或清除存储内容,从而使本地存储代码在其他页面中更有用

URL示例:page-1.html?popup=activate

添加Javascript代码+添加检查URL参数的函数:

$(document).ready(function(){
    if(getUrlParameter("popup") === "activate"){
        localStorage.clear();
        localStorage.setItem("popup", "active");
    }
    if( localStorage.getItem("popup") !== 'closed'){
        $("#popupBox").slideDown("slow");
    }
    window.setTimeout(function() {
        $("#popupBox").slideUp("slow");
    },300000);

    $(".close").click(function(){
        $("#popupBox").slideUp();
        localStorage.setItem("popup", "closed");
    });
});     

function getUrlParameter(sParam){
    var sPageURL = document.location.search.substring(1);
    var sURLVariables = sPageURL.split('&');
    for (var i = 0; i < sURLVariables.length; i++){
        var sParameterName = sURLVariables[i].split('=');
        if (sParameterName[0] == sParam) {
            return sParameterName[1];
        }
    }
    return "";
}
$(文档).ready(函数(){
如果(getUrlParameter(“弹出”)=“激活”){
localStorage.clear();
setItem(“弹出”、“活动”);
}
if(localStorage.getItem(“弹出”)!==“关闭”){
$(“#弹出框”)。向下滑动(“慢速”);
}
setTimeout(函数(){
$(“#弹出框”).slideUp(“慢”);
},300000);
$(“.close”)。单击(函数(){
$(“#popubox”).slideUp();
setItem(“弹出”、“关闭”);
});
});     
函数getUrlParameter(sParam){
var sPageURL=document.location.search.substring(1);
var sURLVariables=sPageURL.split('&');
对于(变量i=0;i
感谢您的回复。我仍在做一些测试,无法让它工作。我会进一步检查你发给我的推荐信,等我找到正确的方向后再回答这个问题。再次感谢。这对我来说是个好的开始。@Philcyb我创建了一个工作示例。只需使用注释的行来查看差异,再次感谢您提供额外的帮助。我一直在玩你分享的代码。这可能奏效了,但我还不太确定。只有一个问题,如果Cookie在浏览器上有这样清晰的历史记录来重置保存的数据,那么localStorage是如何清除这些保存的数据的?@Philcyb我不是100%确定,但我认为这个选项也会清除localStorage。hi empiric。在做测试之后。你的代码真的很有效,你回答了我的问题;解决我的代码问题。虽然浏览器的“清除cookie历史记录”功能不起作用!我仍然感谢你
$(document).ready(function(){


    if( localStorage.getItem("popup") !== 'closed'){
        $("#popupBox").slideDown("slow");            
     }
     window.setTimeout(function() {
         $("#popupBox").slideUp("slow");
      },300000);

    $(".close").click(function(){
        $("#popupBox").slideUp();
        localStorage.setItem("popup", "closed");
    });
});
document.cookie="popup=closed"; //Set the cookie

var closed = document.cookie; // Get the cookie
$(document).ready(function(){
    if(getUrlParameter("popup") === "activate"){
        localStorage.clear();
        localStorage.setItem("popup", "active");
    }
    if( localStorage.getItem("popup") !== 'closed'){
        $("#popupBox").slideDown("slow");
    }
    window.setTimeout(function() {
        $("#popupBox").slideUp("slow");
    },300000);

    $(".close").click(function(){
        $("#popupBox").slideUp();
        localStorage.setItem("popup", "closed");
    });
});     

function getUrlParameter(sParam){
    var sPageURL = document.location.search.substring(1);
    var sURLVariables = sPageURL.split('&');
    for (var i = 0; i < sURLVariables.length; i++){
        var sParameterName = sURLVariables[i].split('=');
        if (sParameterName[0] == sParam) {
            return sParameterName[1];
        }
    }
    return "";
}