2017-07-20 2 views
0

Ich benutze remodal, um ein Modal auf meiner Website anzuzeigen, wenn jemand darauf zugreift. So funktioniert es.Einen Eintrag für die Website nur einmal anzeigen

CSS- und Javascript:

<link rel="stylesheet" href="../dist/remodal.css"> 
<link rel="stylesheet" href="../dist/remodal-default-theme.css"> 
<script src="../dist/remodal.min.js"></script> 

Definieren Sie die modale selbst:

<div class="remodal" data-remodal-id="modal"> 
    <button data-remodal-action="close" class="remodal-close"></button> 
    <h1>Remodal</h1> 
    <p> 
    Responsive, lightweight, fast, synchronized with CSS animations, fully customizable modal window plugin with declarative configuration and hash tracking. 
    </p> 
    <br> 
    <button data-remodal-action="cancel" class="remodal-cancel">Cancel</button> 
    <button data-remodal-action="confirm" class="remodal-confirm">OK</button> 
</div> 

zeigen die modale:

<a href="#modal">Call the modal with data-remodal-id="modal"</a> 

Die Sache ist die, dass die modale zeigt wieder und wieder jedes Mal Ich betrete die Website.

Ist es möglich, dies mit Cache oder etwas zu steuern, dass für jeden Benutzer das Modal nur einmal angezeigt wird? Dies bedeutet, dass beim ersten Zugriff des Benutzers auf die Website das Modal angezeigt wird, der Benutzer es schließt und beim nächsten Aktualisieren der Website nicht angezeigt wird.

Wenn es möglich ist, wie kann ich es tun?

Vielen Dank im Voraus.

+1

Versuchen Plätzchen oder local mit ... Wie auslösen Sie die modal beim Laden der Seite? Zeig uns Code? –

+0

Wenn sich Ihre Benutzer nicht selbst authentifizieren müssen, gibt es dafür keine gute Lösung. Sie können Cookies oder lokalen Speicher verwenden, aber es gibt keine Garantie, dass diese tatsächlich für eine längere Zeit bestehen bleiben. – str

+0

Ich erzwinge es nur, indem ich es über ein 'div' wie folgt lade:'

content
' –

Antwort

3

Blick auf remodal init with js, Verwendung, die die Standard-Funktion statt und vor, dass der Check, ob ein bestimmtes Cookie vorhanden nennen es seenModal tun, lassen:

if (getCookie("seenModal") != "true") { 
    //display the modal 
    document.cookie = "seenModal=true"; // sets the modal-cookie 
} else { 
    // modal already seen 
} 

function getCookie(cname) { 
    var name = cname + "="; 
    var decodedCookie = decodeURIComponent(document.cookie); 
    var ca = decodedCookie.split(';'); 
    for(var i = 0; i <ca.length; i++) { 
     var c = ca[i]; 
     while (c.charAt(0) == ' ') { 
      c = c.substring(1); 
     } 
     if (c.indexOf(name) == 0) { 
      return c.substring(name.length, c.length); 
     } 
    } 
    return ""; 
} 
0

Sie können es durch ein Detail über den Benutzer in MySQL-Tabelle eingeben ..

speichert nur die IP-Adresse des Benutzers und jedes Mal, wenn der Benutzer Ihre Website besucht Prüfung für die IP-Adresse in der Tabelle, wenn sie zeigen nicht existiert modal und wenn nicht dann zeige es..quite einfach

+0

Die IP-Adresse ist weder eindeutig pro Benutzer noch dauerhaft. – str

+0

Sie können dies tun, indem Sie eine modale zeigen und dann Sitzungsvariable und jedes Mal auf Sitzungsvariable überprüfen, bevor Sie das Modal zeigen. –

+0

Eine Sitzungs-ID muss irgendwo gespeichert werden und auch an einen Benutzer gebunden sein. Die Frage ist, wie man das macht. – str

0

Ich denke, dass Sie das tun können, indem Sie eine Sitzungsvariable erstellen und es überprüfen. Die Sitzungsvariable kann nach einer bestimmten Zeit nicht mehr gesetzt werden.

0

Wenn Sie nur nach einer Browsersitzung suchen müssen, können Sie localStorage api von HTML5 verwenden. Aber wenn Sie universell für einen Benutzer benötigen, können Sie die watched Flagge in Ihrem db speichern.

Verwandte Themen