Ich habe mich gefragt, ob es möglich ist, nur Sitzungscookies mit Javascript zu erstellen. Wenn der Browser geschlossen ist, sollten die Cookies entfernt werden.
Ich kann nichts auf dem Server verwenden, da die Website nur aus HTML besteht. Daher wird kein serverseitiges Skript verwendet.
Ich habe hier etwas darüber gelesen: http://blog.lysender.com/2011/08/setting-session-only-cookie-via-javascript/, aber ich kann keine weiteren Informationen dazu finden ... also war ich es Ich frage mich, ob diese Methode zuverlässig ist.
javascript
html
Daan Poron
quelle
quelle
Eine einfachere Lösung wäre
sessionStorage
in diesem Fall:var myVariable = "Hello World"; sessionStorage['myvariable'] = myVariable; var readValue = sessionStorage['myvariable']; console.log(readValue);
Beachten Sie jedoch, dass
sessionStorage
alles als Zeichenfolge gespeichert wird. Wenn Sie also mit Arrays / Objekten arbeiten, können Sie diese mithilfe von JSON speichern:var myVariable = {a:[1,2,3,4], b:"some text"}; sessionStorage['myvariable'] = JSON.stringify(myVariable); var readValue = JSON.parse(sessionStorage['myvariable']);
Wenn Sie also die Seite / Registerkarte schließen, gehen die Daten verloren.
quelle
SessionStorage
, bietet nur eineclient-only
Lösung ohne Zugriff auf diese Werte auf der Serverseite. In vielen serverseitigen Frameworks wie ASP.Net und PHP möchten wir einfach auf die clientseitigen Werte zugreifen können, die wir möglicherweise gespeichert haben, ohne versteckte Felder usw. zu verwenden. Cookies werden dann zu einer besseren Lösung, da Cookies automatisch an das gesendet werden serverseitig.Zum Erstellen von Cookies nur für Sitzungen mit Java-Skript können Sie Folgendes verwenden. Das funktioniert bei mir.
document.cookie = "cookiename=value; expires=0; path=/";
Dann erhalten Sie den folgenden Cookie-Wert
//get cookie var cookiename = getCookie("cookiename"); if (cookiename == "value") { //write your script } //function getCookie function getCookie(cname) { var name = cname + "="; var ca = document.cookie.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) != -1) return c.substring(name.length, c.length); } return ""; }
Okay, um IE zu unterstützen, können wir "expires" vollständig verlassen und dies verwenden
document.cookie = "mtracker=somevalue; path=/";
quelle
Verwenden Sie den folgenden Code für ein Setup-Sitzungscookie. Es funktioniert, bis der Browser geschlossen wird. (Achten Sie darauf, die Registerkarte nicht zu schließen.)
function setCookie(cname, cvalue, exdays) { var d = new Date(); d.setTime(d.getTime() + (exdays*24*60*60*1000)); var expires = "expires="+ d.toUTCString(); document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/"; } 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 false; } if(getCookie("KoiMilGaya")) { //alert('found'); // Cookie found. Display any text like repeat user. // reload, other page visit, close tab and open again.. } else { //alert('nothing'); // Display popup or anthing here. it shows on first visit only. // this will load again when user closer browser and open again. setCookie('KoiMilGaya','1'); }
quelle