在url(Javascript)上添加部件时,无法识别Cookie
下面是我当前用于读取和创建cookie的两个函数(cookie的有效期应仅为1天)在url(Javascript)上添加部件时,无法识别Cookie,javascript,jquery,cookies,Javascript,Jquery,Cookies,下面是我当前用于读取和创建cookie的两个函数(cookie的有效期应仅为1天) 函数set1DayValidationCookie(){ var d=新日期(); var today=d.getMonth()+“”+d.getDate(); 如果(readCookie('onedaycookie')!=今天){ document.cookie='onedaycookie='+今天; log('cookie已创建'); }否则{ 警报('cookie已存在!'); } } 函数readCook
函数set1DayValidationCookie(){
var d=新日期();
var today=d.getMonth()+“”+d.getDate();
如果(readCookie('onedaycookie')!=今天){
document.cookie='onedaycookie='+今天;
log('cookie已创建');
}否则{
警报('cookie已存在!');
}
}
函数readCookie(名称){
变量nameEQ=name+“=”;
var ca=document.cookie.split(“;”);
对于(变量i=0;i
但在刷新页面时,会识别cookie
例如,我将url从www.mywebsite.com/en/更改为www.mywebsite.com/ru/
(出于语言目的)已再次创建cookie
我想问一下这部分缺少什么?您需要将cookie的“
路径”
”部分设置为“/
”。然后它将适用于所有路径
document.cookie = "username=John Smith; expires=Thu, 18 Dec 2013 12:00:00 UTC; path=/";
如果没有路径,cookie将仅为当前路径设置。我建议使用此代码
window.cookie = {
set: function(c_name, value, exdays, path = '/') {
var exdate = new Date();
exdate.setDate(exdate.getDate() + exdays);
var c_value = escape(value) + ((exdays == null) ? "" : ("; expires=" + exdate.toUTCString())) + "; path=" + path;
document.cookie = c_name + "=" + c_value;
},
get: function(c_name) {
var i, x, y, ARRcookies = document.cookie.split(";");
for (i = 0; i < ARRcookies.length; i++) {
x = ARRcookies[i].substr(0, ARRcookies[i].indexOf("="));
y = ARRcookies[i].substr(ARRcookies[i].indexOf("=") + 1);
x = x.replace(/^\s+|\s+$/g, "");
if (x == c_name) {
return unescape(y);
}
}
}
};
非常感谢。我只是这样更改->document.cookie='onedaycookie='+today+';路径=/';而且它工作得很好!
window.cookie = {
set: function(c_name, value, exdays, path = '/') {
var exdate = new Date();
exdate.setDate(exdate.getDate() + exdays);
var c_value = escape(value) + ((exdays == null) ? "" : ("; expires=" + exdate.toUTCString())) + "; path=" + path;
document.cookie = c_name + "=" + c_value;
},
get: function(c_name) {
var i, x, y, ARRcookies = document.cookie.split(";");
for (i = 0; i < ARRcookies.length; i++) {
x = ARRcookies[i].substr(0, ARRcookies[i].indexOf("="));
y = ARRcookies[i].substr(ARRcookies[i].indexOf("=") + 1);
x = x.replace(/^\s+|\s+$/g, "");
if (x == c_name) {
return unescape(y);
}
}
}
};
if("undefined" !== typeof cookie.get('lang')){
//cookie is not set
cookie.set('lang', 'en', 1);
}else{
//cookie is set
}