我需要设置一个cookie,每当用户点击我们的代销商链接之一,并在我们的网站与"src=uni“在网址土地。URL将如下所示:
http://www.myadmin.com?src=uni&utm_source=uni&utm_content=[publisher_ID]
创建cookie的函数:
function SetCookie() {
var url = window.location.href;
if(url.indexOf('?src' + uni) = 1)
document.cookie="QueryCookie";
}有人能告诉我,在基于查询参数创建这个Cookie时,我哪里出错了吗?
发布于 2015-04-23 01:03:54
这里有几件事:
function SetCookie() {
var url = window.location.search;
if(url.indexOf('?src=uni') !== -1)
document.cookie="src=uni";
}1)使用location.search缩小范围,不是必须的,但错误的空间较小。
2)使用!== -1测试indexOf方法。如果没有找到匹配项,indexOf将返回"-1“。如果在字符串开头找到匹配项,则返回"0“。字符串是“零索引”,这意味着字符串中的第一个字符位于位置"0“。
3)添加等号=和参数名称:src=。
4)此外,如果这是您要查找的,请使用字符串"uni“,而不是名为uni的变量。如果"src“可以是各种值,那么我们需要添加更多的逻辑来说明这一点。
5)当赋值给document.cookie时,使用键/值对,如:key=value。
发布于 2015-04-23 01:00:28
你需要解决的第一件事是:
if(url.indexOf('?src' + uni) = 1)应该是(这检查它是否存在于索引1处):
if(url.indexOf('?src=' + uni) === 1)或者(这会检查它是否存在)
if(url.indexOf('?src=' + uni) !== -1)接下来,您需要将src设置为uni,并使其可供整个站点访问:
document.cookie="src="+uni+"; path=/; domain=.myadmin.com";添加路径=/和domain=.myadmin.com将允许您在该域上的所有路径上访问cookie,域部分允许在所有子域上访问它(即www.myadmin.com以及blog.myadmin.com等)
因此,所有这些都是:
function SetCookie() {
var url = window.location.href;
if(url.indexOf('?src='+uni) !== -1)
document.cookie="src="+uni+"; path=/; domain=.myadmin.com";
}以下是一些基本信息:
http://www.w3schools.com/js/js_cookies.asp
或者更深入、更准确的文档:
https://developer.mozilla.org/en-US/docs/Web/API/Document/cookie
https://stackoverflow.com/questions/29804219
复制相似问题