根据url参数设置Cookie

时间:2015-04-22 16:58:06

标签: javascript url cookies query-string affiliate

每当用户点击我们的某个联盟链接并使用" 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时出错吗?

2 个答案:

答案 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