Daa*_*ron 68 html javascript html5
我想知道是否可以使用Javascript创建仅会话cookie.当浏览器关闭时,应删除cookie.
我不能在服务器上使用任何东西,因为网站只是HTML ...所以没有使用服务器端脚本.
我在这里读到了一些相关内容:http: //blog.lysender.com/2011/08/setting-session-only-cookie-via-javascript/ 但我找不到更多关于此的信息...所以我是想知道这种方法是否可靠.
Cer*_*rus 42
sessionStorage
在这种情况下,更简单的解决方案是使用:
var myVariable = "Hello World";
sessionStorage['myvariable'] = myVariable;
var readValue = sessionStorage['myvariable'];
console.log(readValue);
Run Code Online (Sandbox Code Playgroud)
但是,请记住sessionStorage
将所有内容保存为字符串,因此在使用数组/对象时,可以使用JSON来存储它们:
var myVariable = {a:[1,2,3,4], b:"some text"};
sessionStorage['myvariable'] = JSON.stringify(myVariable);
var readValue = JSON.parse(sessionStorage['myvariable']);
Run Code Online (Sandbox Code Playgroud)
只要浏览器处于打开状态,页面会话就会持续,并且会在页面重新加载和恢复后继续存在.在新选项卡或窗口中打开页面将导致启动新会话.
因此,当您关闭页面/选项卡时,数据将丢失.
要使用java脚本创建仅会话cookie,您可以使用以下内容.这适合我.
document.cookie = "cookiename=value; expires=0; path=/";
Run Code Online (Sandbox Code Playgroud)
然后获得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 "";
}
Run Code Online (Sandbox Code Playgroud)
好的,为了支持IE,我们可以完全保留"expires"并可以使用它
document.cookie = "mtracker=somevalue; path=/";
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
147334 次 |
最近记录: |