2017-02-13 122 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