Javascript 根据url参数设置Cookie

Javascript 根据url参数设置Cookie,javascript,url,cookies,query-string,affiliate,Javascript,Url,Cookies,Query String,Affiliate,我需要设置一个cookie,每当用户点击我们的一个附属链接并登陆我们的网站,URL中有“src=uni”。URL将如下所示: 创建cookie的函数: function SetCookie() { var url = window.location.href; if(url.indexOf('?src' + uni) = 1) document.cookie="QueryCookie"; } 有人能告诉

我需要设置一个cookie,每当用户点击我们的一个附属链接并登陆我们的网站,URL中有“src=uni”。URL将如下所示:

创建cookie的函数:

 function SetCookie() {
            var url = window.location.href;
            if(url.indexOf('?src' + uni) = 1)
                document.cookie="QueryCookie";
    }

有人能告诉我在基于查询参数创建此Cookie时出错的地方吗?

您需要解决的第一件事是:

if(url.indexOf('?src' + uni) = 1)
应该是(这将检查它是否存在于索引1中):

或者(这检查它是否存在)

接下来,您需要将src设置为uni,并使整个站点都可以访问它:

document.cookie="src="+uni+"; path=/; domain=.myadmin.com";
添加path=/和domain=.myadmin.com将允许您在该域的所有路径上访问cookie,而domain部分允许在所有子域上访问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";
    }

以下是一些基本信息:

或更深入、准确的文档:

这里有几件事:

function SetCookie() {
    var url = window.location.search;
    if(url.indexOf('?src=uni') !== -1)
        document.cookie="src=uni";
}
1) 使用
location.search
缩小范围,这不是必需的,但会减少出错的空间

2) 使用
!==-1
测试方法的索引
indexOf
如果未找到匹配项,则返回“-1”。如果在字符串开头找到匹配项,则返回“0”。字符串为“零索引”,这意味着字符串中的第一个字符位于位置“0”

3) 将等号
=
与参数名称一起添加:
src=

4) 此外,如果您正在查找字符串“uni”,请使用该字符串,而不是名为
uni
的变量。如果“src”可以是多种值,那么我们需要添加更多的逻辑来说明这一点


5) 当分配给
document.cookie
时,使用键/值对,如:
key=value

谢谢,伙计,我已经解决了这个问题,它仍然不起作用。你有没有其他的建议,我应该研究一下,以使这项工作?整个事情是我想设置一个cookie时,src=uni,然后如果用户从这个链接指示进行购买,我们的网站应该寻找这个cookie,如果它是存在的,那么我在我们的ReceiptPage标签应该有'FIRESRC':'真'。如果cookie不存在,则标记应具有“FIRESRC”:“FALSE”。所以我只想在这个cookie中把Key存储为'SRC',把它的值存储为'UNI'。你可以把它设置为true。但是你也应该让饼干过期。我展示的链接展示了如何做到这一点。你可能不希望它永远停留在那里。也不要忘记“=”符号,只是补充了一下,加上“uni”是uni这个词还是一个变化的变量?“uni”是我在收据页面中的一个变量,它将跟踪销售细节。谢谢,伙计,我修复了它,但它仍然不起作用。我想将键存储为'src'并将其值存储为'uni',但我不确定上面的代码为什么也没有响应。@Programmermid好的,我更新了响应,将名为“src”的cookie设置为值“uni”。这就是你要找的吗?是的,它起作用了,但是一个简单的问题是,只要在下面的url中src=uni,就会设置这个cookie吗?@Programmermid是的,这些“src=uni”的出现都会触发它,甚至是“utm_src=uni”,所以我更改了我的响应,将其限制为“?src=uni”。现在只有开头的“src=uni”会触发它。谢谢你,伙计,这是你方的一大帮助。
    function SetCookie() {
        var url = window.location.href;
        if(url.indexOf('?src='+uni) !== -1)
            document.cookie="src="+uni+"; path=/; domain=.myadmin.com";
    }
function SetCookie() {
    var url = window.location.search;
    if(url.indexOf('?src=uni') !== -1)
        document.cookie="src=uni";
}