Javascript 离开主页后,Cookie数据仅存储一个变量
我这里有个问题。我正在转换cookie字符串以创建变量。主页在控制台中显示这两个变量。情况看起来不错。有一个If语句,我想这就是我的问题所在。离开主页后,只存储mc_eid。我需要查看mc_eid和mc_cid。它们都显示在主页上,但一旦我们更改链接,看起来只有mc_eid被存储。我很难弄明白这一点。在结帐时,我需要两个变量ID。为什么一旦url改变,它只存储其中一个Javascript 离开主页后,Cookie数据仅存储一个变量,javascript,jquery,json,variables,cookies,Javascript,Jquery,Json,Variables,Cookies,我这里有个问题。我正在转换cookie字符串以创建变量。主页在控制台中显示这两个变量。情况看起来不错。有一个If语句,我想这就是我的问题所在。离开主页后,只存储mc_eid。我需要查看mc_eid和mc_cid。它们都显示在主页上,但一旦我们更改链接,看起来只有mc_eid被存储。我很难弄明白这一点。在结帐时,我需要两个变量ID。为什么一旦url改变,它只存储其中一个 // getParameterByName function getParameterByName( name ){
// getParameterByName
function getParameterByName( name ){
var regexS = "[\\?&]"+name+"=([^&#]*)",
regex = new RegExp( regexS ),
results = regex.exec( window.location.search );
if( results === null ){
return null;
} else{
return decodeURIComponent(results[1].replace(/\+/g, " "));
}
}
// call Parameter values we are looking for
var mc_emailId = getParameterByName('mc_eid');
var mc_campaignId = getParameterByName('mc_cid');
//if id's are present store in cookie
if (mc_campaignId && mc_emailId) {
mccookie = "mc_eid=" + mc_emailId + "; mc_cid=" + mc_campaignId;
}else if (mc_campaignId) {
mccookie = "mc_cid=" + mc_campaignId;
}else if (mc_emailId) {
mccookie = "mc_eid=" + mc_emailId;
}
// add experation date set cookie
if (typeof mccookie !== "undefined"){
var days = 30;
var d = new Date();
d.setTime(d.getTime() + (days*24*60*60*1000));
var expires =";expires="+d.toUTCString();
document.cookie = mccookie + expires + "; domain=.mydomainname.com; path=/";
}
我只是不明白为什么没有存储mc_cid 错误与以下方面有关,这一点是正确的:
mccookie = "mc_eid=" + mc_emailId + "; mc_cid=" + mc_campaignId;
您需要分别设置cookies。比如:
if (mc_campaignId) {
var mccookieCID = "mc_cid=" + mc_campaignId;
}
if (mc_emailId) {
var mccookieEID = "mc_eid=" + mc_emailId;
}
// add experation date set cookies
if (typeof mccookieCID !== "undefined"){
var days = 30;
var d = new Date();
d.setTime(d.getTime() + (days*24*60*60*1000));
var expires =";expires="+d.toUTCString();
document.cookie = mccookieCID + expires + "; domain=.mydomainname.com; path=/";
}
if (typeof mccookieEID !== "undefined"){
var days = 30;
var d = new Date();
d.setTime(d.getTime() + (days*24*60*60*1000));
var expires =";expires="+d.toUTCString();
document.cookie = mccookieEID + expires + "; domain=.mydomainname.com; path=/";
}
将任何cookie值推送到一个数组中,然后循环设置它们,可能会更有效。您也可以考虑使用JavaScript Cookie API(类似)。但要修复代码,只需单独设置cookies即可。不确定我写的是否正确,mccookie=“mc_eid=“+mc_emailId+”;mc_cid=“+mc_活动id;乔:谢谢你,我还在学习如何循环,不过我明白你的意思。非常有用的书,比如(typeof mccookieid!=“undefined”)正在超出范围使用,我得到一个错误