2017-02-13 124 views
0

我已经设置会话,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(); 

?> 

回答

0

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

+0

能否请你告诉我如何做到这一点? –

+0

我不太了解php和magento。所以你必须自己弄明白。 –

0

,你可以把它显示每个新的会话通过保存到的sessionStorage这样

jQuery(document).ready(function() { 
     if(window.sessionStorage.getItem('shown') === true){ 
     jQuery('#earn-reward-box').show(); 
     } 
    }); 

而且你可以当用户点击叠加

jQuery('#earn-reward-close').click(function(){ 
      window.sessionStorage.setItem('shown', true); 
     jQuery('#earn-reward-box-main').toggle(); 
    }); 
0

看到您的项目设置为true从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