【发布时间】:2018-04-14 07:38:32
【问题描述】:
我有以下脚本来设置 cookie 并将值提取到表单中。我正在努力将到期日期设置为 2 年?
// Parse the URL
function getParameterByName(name) {
name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
results = regex.exec(location.search);
return results === null ? "" :
decodeURIComponent(results[1].replace(/\+/g, " "));
}
// Give the URL parameters variable names
var source = getParameterByName('utm_source');
var keyword = getParameterByName('keyword');
var medium = getParameterByName('utm_medium');
var campaign = getParameterByName('utm_campaign');
var _ga = getParameterByName('_ga');
var gclid = getParameterByName('gclid');
var clientId = getParameterByName('clientId');
// Set the cookies
if(Cookies.set('utm_source') == null || Cookies.set('utm_source') ==
"") {
Cookies.set('utm_source', source, { path: ''});
}
if(Cookies.set('keyword') == null || Cookies.set('keyword') == "") {
Cookies.set('keyword', keyword, { path: '' });
}
if(Cookies.set('utm_medium') == null || Cookies.set('utm_medium') ==
"") {
Cookies.set('utm_medium', medium, { path: '' });
}
if(Cookies.set('utm_campaign') == null || Cookies.set('utm_campaign')
== "") {
Cookies.set('utm_campaign', campaign, { path: '' });
}
if(Cookies.set('_ga') == null || Cookies.set('_ga') == "") {
Cookies.set('_ga', _ga, { path: '' });
}
if(Cookies.set('gclid') == null || Cookies.set('gclid') == "") {
Cookies.set('gclid', gclid, { path: '' });
}
if(Cookies.set('clientId') == null || Cookies.set('clientId') == "") {
Cookies.set('clientId', clientId, { path: '' });
}
// Grab the cookie value and set the form field values
$(document).ready(function(){
$("input[name=utm_source]:hidden").val(source);
$("input[name=keyword]:hidden").val(keyword);
$("input[name=utm_medium]:hidden").val(medium);
$("input[name=gclid]:hidden").val(gclid);
$("input[name=utm_campaign]:hidden").val(campaign);
$("input[name=_ga]:hidden").val(_ga);
$("input[name=clientId]:hidden").val (clientId);
});
</script>
谢谢 - 上述一切都按预期工作,但我很难将 cookie 设置为在两年内过期 - 我尝试了各种 [expires] 但无济于事。
【问题讨论】:
-
在
if()条件句中使用set()没有意义 -
这是否意味着如果 cookie 'clientId' 为空(不存在)然后设置 cookie clientId。最后一节“Cookies.set('clientId', clientId, { path: '' });”是name,value从参数中获取并添加路径?
-
不...不是这个意思。使用
get()检查值
标签: javascript jquery cookies session-cookies