为了账号安全,请及时绑定邮箱和手机立即绑定

每个用户仅显示一次弹出窗口

每个用户仅显示一次弹出窗口

富国沪深 2019-11-28 13:45:56
这个问题已经有了答案,但是我仍然不确定它是如何工作的。我在footer.php中使用以下HTML:<div id="popup">    <div>        <div id="popup-close">X</div>            <h2>Content Goes Here</h2>    </div></div>以及以下Javascript:$j(document).ready(function() {    $j("#popup").delay(2000).fadeIn();    $j('#popup-close').click(function(e) // You are clicking the close button    {    $j('#popup').fadeOut(); // Now the pop up is hiden.    });    $j('#popup').click(function(e)     {    $j('#popup').fadeOut();     });});一切都很好,但是我只想对每个用户显示一次弹出窗口(也许使用所有论坛帖子都使用的cookie内容),但是我不知道确切如何将其合并到上面的JS中。我知道我将必须在此页脚中加载cookie JS:<script type="text/javascript" src="scripts/jquery.cookies.2.2.0.min.js"></script> 但这就是我的全部理解,任何人都可以告诉我添加了Cookie的东西后JS / jQuery的外观如何吗?谢谢詹姆士
查看完整描述

3 回答

?
慕尼黑8549860

TA贡献1818条经验 获得超11个赞

*注意:由于数据存储在浏览器内存中,因此每个浏览器都会显示一次弹出窗口。


试试HTML localStorage。


方法 :


localStorage.getItem('key');

localStorage.setItem('key','value');

$j(document).ready(function() {

    if(localStorage.getItem('popState') != 'shown'){

        $j("#popup").delay(2000).fadeIn();

        localStorage.setItem('popState','shown')

    }


    $j('#popup-close, #popup').click(function(e) // You are clicking the close button

    {

        $j('#popup').fadeOut(); // Now the pop up is hiden.

    });

});


查看完整回答
反对 回复 2019-11-28
?
繁华开满天机

TA贡献1816条经验 获得超4个赞

本示例使用jquery-cookie


检查cookie是否存在并且尚未过期-如果其中任何一个失败,则显示弹出窗口并设置cookie(半伪代码):


if($.cookie('popup') != 'seen'){

    $.cookie('popup', 'seen', { expires: 365, path: '/' }); // Set it to last a year, for example.

    $j("#popup").delay(2000).fadeIn();

    $j('#popup-close').click(function(e) // You are clicking the close button

        {

        $j('#popup').fadeOut(); // Now the pop up is hiden.

    });

    $j('#popup').click(function(e) 

        {

        $j('#popup').fadeOut(); 

    });

};


查看完整回答
反对 回复 2019-11-28
?
慕沐林林

TA贡献2016条经验 获得超9个赞

您可以使用php解决此问题。您仅在首页加载时回显弹出窗口的代码。


另一种方法是设置cookie,它基本上是一个位于浏览器中的文件,其中包含某种数据。在第一页加载中,您将创建一个cookie。然后,随后的每个页面都会检查您的cookie是否已设置。如果已设置,则不显示弹出窗口。但是,如果未设置,则设置cookie并显示弹出窗口。


伪代码:


if(cookie_is_not_set) {

    show_pop_up;

    set_cookie;

}


查看完整回答
反对 回复 2019-11-28
  • 3 回答
  • 0 关注
  • 612 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信