我从W3Schools(http://www.w3schools.com/js/js_cookies.asp)复制并使用了getCookie和setCookie。以下是get和set的代码:
function setCookie(c_name,value,exdays)
{
var exdate=new Date();
exdate.setDate(exdate.getDate() + exdays);
var c_value=escape(value) + ((exdays==null) ? "" : "; expires="+exdate.toUTCString());
document.cookie=c_name + "=" + c_value;
}
function getCookie(c_name)
{
var c_value = document.cookie;
var c_start = c_value.indexOf(" " + c_name + "=");
if (c_start == -1)
{
c_start = c_value.indexOf(c_name + "=");
}
if (c_start == -1)
{
c_value = null;
}
else
{
c_start = c_value.indexOf("=", c_start) + 1;
var c_end = c_value.indexOf(";", c_start);
if (c_end == -1)
{
c_end = c_value.length;
}
c_value = unescape(c_value.substring(c_start,c_end));
}
return c_value;
}
我在prepareDrive.html页面中设置了cookie
setCookie("pathName",path,365);
setCookie("formatName",ifFormat,365);
然后我在startInstall.html页面中调用了get cookie,这是一个不同的HTML页面
var path = getCookie("pathName");
var ifFormat = getCookie("formatName");
但path和ifFormat都为null。但是,当我在prepareDrive.html中的console.log时,数据就在那里。谢谢 !!!这是我第一次在JS中使用cookie。我不想使用localstorage来存储数据。因为一些旧版本的浏览器不支持这个功能,对吧?
答案 0 :(得分:3)
您需要为Cookie指定一个公共path
。最简单的是指定域根目录:
var c_value=escape(value) + "; path=/" + ((exdays==null) ? "" : "; expires="+exdate.toUTCString());
如果没有,document.cookie
将default to the current location.pathname
,使Cookie仅对当前页面可用。
; path = path (例如,'/','/ mydir')如果未指定,则默认为当前文档位置的当前路径。
此外,我建议您查看MDN上的Cookie的“little framework”。
答案 1 :(得分:0)