弹出窗口仅显示一次

时间:2017-02-13 07:03:37

标签: javascript magento-1.9.1

我已设置会话,并且只有当用户进入网站时才显示弹出窗口,但我的弹出窗口显示所有时间,下面是我的代码 -

<?php 
 Mage::getSingleton('core/session')->setWall('1');
$wall = Mage::getSingleton('core/session')->getWall();
if($wall =='1'){ ?>
<script>
jQuery(document).ready(function() {
   jQuery('#earn-reward-box').show();
   //jQuery('#earn-reward-box').delay(000).fadeOut();
    });
</script>
 <div id="earn-reward-box-main" style="display:block">
<div id="earn-reward-box" class="xmus-box">
<div id="earn-reward-close">&nbsp;</div>
<a href="<?php echo Mage::getBaseUrl()?>christmas">
<img src="<?php echo Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA);?>wysiwyg/deal.png" />
</a>
</div>
<div id="earn-reward-overlay">&nbsp;</div>
</div><script>
    jQuery('#earn-reward-close').click(function(){
        jQuery('#earn-reward-box-main').toggle();
    });
jQuery('#earn-reward-close').click(function(){
        jQuery('#earn-reward-overlay').toggle();
    });
</script>  
<?php
Mage::getSingleton('core/session')->setWall('1'); 

} 
Mage::getSingleton('core/session')->unsWall(); 

?>

3 个答案:

答案 0 :(得分:0)

将会话变量设置为“display:block”,一旦显示并关闭,将其更改为“display:none”并将其设置为style =“这里是会话变量”。

答案 1 :(得分:0)

你可以通过像这样

保存到sessionStorage来为每个新会话显示它
    jQuery(document).ready(function() {
      if(window.sessionStorage.getItem('shown') === true ){
         jQuery('#earn-reward-box').show();
       }
    });

当用户点击叠加层

时,您可以将项目设置为true
 jQuery('#earn-reward-close').click(function(){
          window.sessionStorage.setItem('shown', true);
         jQuery('#earn-reward-box-main').toggle();
     });

答案 2 :(得分:0)

从MVC看,你需要一个存储在某处的模型(或状态)来判断弹出窗口是否已经显示。例如,您可以使用localStorage作为存储此信息的位置:

localStorage.setItem('popup-shown', 'true');

下次打开此页面时,由于localStorage仍然存在,您可以判断它是否已经显示:

localStorage.getItem('popup-shown') === 'true'

然后您可以根据需要控制弹出窗口的行为。

sessionStorage可能也没问题,但要注意这句话:

  

sessionStorage类似于Window.localStorage,唯一的区别是当localStorage中存储的数据没有到期设置时,sessionStorage中存储的数据会在页面会话结束时被清除。

https://developer.mozilla.org/en/docs/Web/API/Window/sessionStorage