Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/422.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 返回页面时会话存储未持续_Javascript_Sessionstorage - Fatal编程技术网

Javascript 返回页面时会话存储未持续

Javascript 返回页面时会话存储未持续,javascript,sessionstorage,Javascript,Sessionstorage,当访问者进入网站的某个部分时,我会使用弹出窗口。当访问者点击x时,弹出窗口关闭,我希望这种状态在他们整个访问过程中持续,这样他们就不会生气。但是,如果他们关闭浏览器,改天再回到该站点,我希望弹出窗口再次显示 在Chrome桌面浏览器中:现在,它在弹出窗口显示的地方工作,如果我单击它关闭的x,如果我在网站上的其他页面中单击更深的位置,它不会再次显示,但是如果我返回顶层页面,它会再次弹出。反之亦然,如果我进入一个内部页面并点击“关闭”,它会工作,但如果我进入顶层页面,它会再次显示。我做错了什么 re

当访问者进入网站的某个部分时,我会使用弹出窗口。当访问者点击x时,弹出窗口关闭,我希望这种状态在他们整个访问过程中持续,这样他们就不会生气。但是,如果他们关闭浏览器,改天再回到该站点,我希望弹出窗口再次显示

在Chrome桌面浏览器中:现在,它在弹出窗口显示的地方工作,如果我单击它关闭的x,如果我在网站上的其他页面中单击更深的位置,它不会再次显示,但是如果我返回顶层页面,它会再次弹出。反之亦然,如果我进入一个内部页面并点击“关闭”,它会工作,但如果我进入顶层页面,它会再次显示。我做错了什么

require(["jquery", "domReady!"], function ($) {
// mobile
$(window).on('touchmove', function () {
    if (($(window).scrollTop() > $(window).height() / 2) && 
sessionStorage.getItem('semCroPopupDisabled') !== "true" ) {
        $('#croWrapper').animate({
            bottom: 0
        }, 'fast');
    }
});

// desktop
$(window).on('scroll', function () {
    if (($(window).scrollTop() > $(window).height() / 2) && 
sessionStorage.getItem('semCroPopupDisabled') !== "true" ) {
        $('#croWrapper').animate({
            bottom: 0
        }, 'fast');
    }
});

$('#croWrapper').on('click', '#xclose', function () {
    sessionStorage.setItem('semCroPopupDisabled', "true");
    $('#croWrapper').hide();
});
});

会话存储用于单个会话,该会话在浏览器关闭时结束。您需要的是本地存储,它具有相同的API,并且不会以会话结束(浏览器关闭)

在提问之前阅读文档我认为Michele特别使用sessionStorage,因为她知道它和本地存储之间的区别,并希望会话存储的会话结束时擦除功能。她的问题向我表明,她在给定会话中,而不是在会话之间使用该功能时遇到了问题。如果您发布一个示例片段(甚至只是代码),我将对此进行投票为了更清楚地定义两者之间的区别,一个示例片段实际上是将
sessionStorage
更改为
localStorage
,因此几乎没有必要这样做。区别如前所述-会话存储用于会话,该会话在浏览器关闭时结束。本地存储没有。没有比这更重要的了。