2015-07-13 4 views
0

Jusqu'ici mon idée était d'implémenter une fonction popup ("url") vérifiant un cookie existant qui est déclenché en chargeant le corps de la page (onLoad - pas une bonne solution je sais). J'ai utilisé le code exact de here pour implémenter la fonctionnalité de cookie que j'ai inclus dans mon application.js. Là, je également inclus ma popup() fonction:Comment est-ce que je peux montrer le popup avec le slimbox sur le chargement de la page seulement pour la première visite?

function popUp(startimage) { 
    var x = readCookie('ecocrowd') 
    if (x = 'nopopup') { 
    } 
    else { 
     jQuery.slimbox(startimage); 
    } 

} 

Dans le code html-template pour ma page de démarrage J'inclus les pièces suivantes:

<body onLoad="popup("wirdiezukunft.png")"> 

et

<script>createCookie('ecocrowd','nopopup',7)</script> 

Est-ce que je manque quelque chose ? C'est la première fois que je travaille avec une implémentation Javascript comme celle-ci, donc j'apprécierais toute sorte d'aide. Merci d'avance!

mise à jour (contenu de createCookie()):

function createCookie(name,value,days) { 


    if (days) { 
      var date = new Date(); 
      date.setTime(date.getTime()+(days*24*60*60*1000)); 
      var expires = "; expires="+date.toGMTString(); 
     } 
     else var expires = ""; 
     document.cookie = name+"="+value+expires+"; path=/"; 
    } 
+0

Voir http://stackoverflow.com/questions/29986657/global-variable-usage-on-page-reload/ – guest271314

+0

'if (x = 'nopopup')' devrait être 'if (x == 'nopopup') ' – Pete

+0

S'il vous plaît notez @ point de Pete et toujours si cela ne fonctionne pas alors assurez-vous que le cookie est défini, sinon - mettre à jour la fonction' createCookie' dans cette question. –

Répondre

1

Oublier les cookies, utilisez localStorage car il dispose d'une interface beaucoup plus pratique, et pas des trucs bizarres avec des chemins, des expirations et domaines:

if(!window.localStorage.getItem('hasShown')) { 
    showMyPopup(); 
    window.localStorage.setItem('hasShown', true); 
} 

Il existe actuellement une interface beaucoup plus pratique pour les cookies en HTML5, mais elle n'est pas encore aussi largement supportée que localStorage.

+0

donc au lieu de showMyPopup(); J'insérerais simplement ma fonction jQuery.slimbox ("image.jpg"); ? Je n'ai jamais travaillé avec localStorage, donc je ne sais pas comment le gérer. Est-ce que je collerais ce code comme script dans mon template html? Merci de votre aide! – chrstoph