每当用户点击我们的某个联盟链接并使用" src = uni"在我们的网站上登陆时,我都需要设置一个Cookie。在URL中。 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时出错吗?
答案 0 :(得分:2)
这里有一些事情:
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
。
答案 1 :(得分:1)
首先需要解决的问题是:
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