只使用Javascript会话cookie

我想知道是否有可能创build会话只有JavaScript的cookie。 当浏览器closures时,cookies应该被删除。

我不能在服务器上使用任何东西,因为网站只有HTML …所以没有使用服务器端脚本。

我在这里读了一些关于这个: http : //blog.lysender.com/2011/08/setting-session-only-cookie-via-javascript/,但我无法find关于这个更多的信息.​​..所以我是想知道这种方法是否可靠。

对,那是正确的。

不放入expires部分将创build会话cookie,无论是在JavaScript中还是在服务器上创build。

请参阅https://stackoverflow.com/a/532660/1901857

在这种情况下,更简单的解决scheme是使用sessionStorage

 var myVariable = true; sessionStorage['myvariable'] = myVariable; myVariable = sessionStorage['myvariable']; 

但是,请记住, sessionStorage将所有内容保存为string,因此在处理数组/对象时,可以使用JSON来存储它们:

 var myVariable = {a:[1,2,3,4], b:"some text"}; sessionStorage['myvariable'] = JSON.stringify(myVariable); myVariable = JSON.parse(sessionStorage['myvariable']); 

只要浏览器处于打开状态,页面会话就会持续下去,并在页面重新加载和恢复之后继续存在。 在新选项卡或窗口中打开页面将导致启动新的会话。

所以,当你closures页面/标签时,数据就会丢失。

对于使用java脚本创build只有cookie的会话,可以使用以下命令。 这对我有用。

 document.cookie = "cookiename=value; expires=0; path=/"; 

然后获取cookie值如下

  //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 ""; } 

好吧,支持IE我们可以完全离开“过期”,可以使用这个

 document.cookie = "mtracker=somevalue; path=/";