Javascript 弹出窗口仅显示一次

Javascript 弹出窗口仅显示一次,javascript,magento-1.9.1,Javascript,Magento 1.9.1,我已经设置了session和whant,当用户进入站点时,只显示一次弹出窗口,但我的弹出窗口一直显示,下面是我的代码- <?php Mage::getSingleton('core/session')->setWall('1'); $wall = Mage::getSingleton('core/session')->getWall(); if($wall =='1'){ ?> <script> jQuery(document).ready(functio

我已经设置了session和whant,当用户进入站点时,只显示一次弹出窗口,但我的弹出窗口一直显示,下面是我的代码-

<?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(); 

?>

jQuery(文档).ready(函数(){
jQuery(“#赢得奖励框”).show();
//jQuery(“#赢得奖励框”).delay(000).fadeOut();
});
jQuery(“#赢得奖励结束”)。单击(函数(){
jQuery(“#赚取奖励框main”).toggle();
});
jQuery(“#赢得奖励结束”)。单击(函数(){
jQuery(“#赚取奖励覆盖”).toggle();
});

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

您可以通过如下方式保存到会话存储中,使其在每个新会话中显示

    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();
     });

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

localStorage.setItem('popup-shown', 'true');
下次打开此页面时,由于localStorage仍然存在,您可以判断它是否已显示:

localStorage.getItem('popup-shown') === 'true'
然后,您可以根据需要控制弹出窗口的行为

sessionStorage
也可以,但请注意以下报价:

sessionStorage与Window.localStorage类似,唯一的区别是,虽然localStorage中存储的数据没有过期设置,但当页面会话结束时,sessionStorage中存储的数据将被清除


你能告诉我怎么做吗?我不太了解php和magento。所以你必须自己去弄清楚。