只使用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。
在这种情况下,更简单的解决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=/";