我很好奇是否有人可以帮助一位非常新的Javascript用户根据特定的网址参数了解如何设置Cookie。我看到在这篇文章中介绍了使用JavaScript从URL中提取数据: How can I get query string values in JavaScript?
但我无法弄清楚如何将该信息提取到cookie中以在网站上的用户会话中存储信息。
我想获取3个主要网址参数: utm_source utm_medium utm_campaign
然后使用Javascript将它们存储在Google跟踪代码管理器中的Cookie中。
我无法解决这个问题。任何帮助将不胜感激。对不起,我没有太多的代码可供参考,但我现在已经进行了几个小时的实验(并且失败了)。
非常感谢您对此的任何见解。
欢呼, 梅丽莎
编辑:
对不起......我不希望有人为我写这篇文章,我只是没想到我的失败尝试会帮助任何人看到我想要做的事情,所以我刚刚解释过。
这是我现在的代码,我知道它的工作方式。我正在编辑以前的cookie,用于将网站引荐来源存储在cookie中。因此,就在现在,cookie会将引用者存储在第一个网页浏览中,然后如果您转到另一个页面,它将显示{{utm_medium}}
并在整个访问过程中继续显示。我希望它不显示引荐来源,但如果可能的话,输出显示{{utm_source}} | {{utm_medium}} | {{utm_campaign}}
的Cookie ...
再次感谢您提供任何帮助或指示或文章。对此,我真的非常感激。
<script> //get referrer info and shorten it
var ref = {{Referrer}}
function extractDomain(url) {
var domain;
//find & remove protocol (http, ftp, etc.) and get domain
if (url.indexOf("://") > -1) {
domain = url.split('/')[2];
} else {
domain = url.split('/')[0];
}
//find & remove port number
domain = domain.split(':')[0];
return domain;
}
ref = extractDomain(ref);
//create cookie
function createCookie(name, value, days) {
if (days) {
var date = new Date();
date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
var expires = "; expires=" + date.toGMTString();
} else var expires = "";
document.cookie = name + "=" + value + expires + "; path=/";
}
var cookie = "";
//check if UTMs are present and set cookie content to the source utm
if ({{utm_source}}) {
createCookie("utmsource", cookie + {{utm_source}}, 1000)
} else if ({{utm_medium}}) {
createCookie("utmsource", cookie + "Email", 1000)
//check if referrer is present and set cookie content to the referrer
} else if ({{utm_campaign}}) {
createCookie("utmsource", cookie + "{{utm_campaign}}", 1000)
} else if {
createCookie("utmsource", cookie + "Email", 1000)
};
</script>
答案 0 :(得分:0)
当您使用cookie + something
时,您不会更新cookie
字符串。因此,每次执行此操作时,您只需与此字符串的原始空值连接即可。不要多次调用setcookie
,而是在测试不同的变量时更新cookie字符串,然后在最后使用组合值调用setcookie
。
您不应该在每次测试之间使用else if
,因为如果第一个变量不存在,那么只会将第二个变量添加到cookie中。但是你想要把所有变量放到cookie中。
var cookie = "";
if ({{utm_source}}) {
cookie += {{utm_source}};
}
if ({{utm_medium}}) {
cookie += ' | ' + {{utm_medium}};
} else {
cookie += ' | Email';
}
if ({{utm_campaign}}) {
cookie += ' | ' + {{utm_campaign}};
} else {
cookie += ' | Email';
}
setcookie('utm_source', cookie, 1000);