2017-02-13 3 views
0

Ich habe Sitzung festgelegt, und whant Popup angezeigt werden nur einmal, wenn der Benutzer Website betritt, aber meine Pop-up aller Zeiten anzeigt, ist unter meinem Code -Popup zeigen einmal nur

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

?> 

Antwort

0

Set Session-Variablen als " display: block "sobald es erscheint und geschlossen ist, ändere es in" display: none "und setze es auf style =" hier ist die sitzungsvariable ".

+0

Können Sie mir bitte sagen, wie dies zu tun? –

+0

Ich bin nicht sehr bewusst von PHP und Magento. Also musst du es selbst herausfinden. –

0

Sie könnte es für jede neue Sitzung zeigen, indem sie wie diese

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

zum session Speichern Und Sie können Ihren Artikel auf true gesetzt, wenn der Benutzer auf das Overlay klickt

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

Sehen Von MVC benötigen Sie ein Modell (oder einen Zustand), das irgendwo gespeichert wird, um festzustellen, ob das Popup bereits angezeigt wurde oder nicht. Zum Beispiel können Sie als Ort verwenden localStorage diese Informationen zu speichern:

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

Und das nächste Mal, wenn Sie diese Seite zu öffnen, da local bleibt, können Sie sagen, ob es gezeigt bereits wurde oder nicht:

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

Dann können Sie das Verhalten von Popup steuern, wie Sie brauchen.

sessionStorage könnte auch in Ordnung sein, aber dieses Zitat kümmern:

session zu Window.localStorage ähnlich ist, ist der einzige Unterschied, während in localstorage gespeicherten Daten keinen Ablaufsatz haben, gespeicherte Daten in session bekommt gelöscht, wenn die Seitensitzung beendet wird.

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