jQuery cookie弹出窗口,每个会话只显示一次

时间:2015-09-22 16:05:57

标签: javascript php jquery cookies popup

我使用此代码仅向用户显示每个会话一次的弹出窗口。它可以工作,但它只会在特定的URL上显示一次。例如,如果用户访问www.mydomain.com/some-url-1,则该网址只会显示一次,但如果用户访问其他网址www.mydomain.com/some-different-url,则弹出窗口会再次显示。

我希望它只显示一次整个域

以下是代码:

<div id="trex-widget391" class="trex-popup-widget"></div> 
   <script>
       function trexCallback391(trex){document.getElementById("trex-widget391").innerHTML=trex.html;}
       jQuery(".trex-popup-widget").mouseover(function(e){
           if(document.cookie.indexOf("popup_trex") ===-1) {
               jQuery("#trex_overlay_fsl_popup").fadeIn('slow');
               expiry = new Date();expiry.setTime(expiry.getTime()+(10*60*1440000)); 
               document.cookie = "popup_trex=yes; expires=" + expiry.toGMTString();
           }
       });
   </script> 
   <script src="http://clanci.geek.hr/widget/widget.php?id=391" async defer></script>

有没有人知道需要修改什么才能在整个域及其子域中只显示一次弹出窗口?

1 个答案:

答案 0 :(得分:0)

如果您支持的浏览器列表允许,最好使用Web Storage来跟踪您的用户是否在整个会话中看到了弹出窗口。

https://developer.mozilla.org/en-US/docs/Web/API/Web_Storage_API

try允许您存储值以表示用户已看到弹出窗口。此存储已沙箱到您的域,并在会话结束时清除。

您的代码段需要修改为:

sessionStorage