我在/page/index/index.html
中向浏览器添加了一个useid的cookie(这里没有指定path), 而后试着从/page/demo/demo.html
中取值,发现没法取到,
经过开发者工具查看发现userid的path是/page/index/
, 因此没法在page/demo/
下面取到, 解决办法就是在添加cookie时指定path为/page/
, 这时page目录下的全部页面均可以获取到useridhtml
另外, path只能设置为绝对路径浏览器
/** * 添加cookie * @param {String} objName * @param {String} objValue * @param {Number} objHours */ function addCookie(objName,objValue,objHours){ var str = objName + "=" + escape(objValue); if(objHours > 0){ // 若是不设定过时时间, 浏览器关闭时cookie会自动消失 var date = new Date() var ms = objHours * 3600 * 1000; date.setTime(date.getTime() + ms); str += "; expires=" + date.toGMTString() + "; path=/page/;"; // 指定了cookie的path } document.cookie = str; }
/** * 获取指定名称的cookie值 * @param {Object} objName */ function getCookie(objName) { var arrStr = document.cookie.split("; "); for (var i = 0; i < arrStr.length; i ++) { var temp = arrStr[i].split("="); if(temp[0] == objName) return unescape(temp[1]); } }
/** * 删除指定名称的cookie值 * @param {Object} objName */ function delCookie(objName) { var exp = new Date(); exp.setTime(exp.getTime() - 1); var cval = getCookie(objName); if (cval != null) { document.cookie = objName + "=" + cval + "; expires=" + exp.toGMTString() + "; path=/page/;"; // 指定了cookie的path } }