跟踪通过Javascript Cookie点击的链接

时间:2014-03-19 23:32:42

标签: javascript html cookies

我的网站上有三页。

  • 在第一页上单击按钮时,它会将用户定向到第二页。
  • 当在第二页时,用户可以选择是否选择 将“插件”添加到他们的订单或跳过它。
  • 无论是添加还是跳过“插件”,他们都会移动到另一个提供相同内容但不同的“插件”的页面

通过这两个页面,我想跟踪用户是否已点击添加或跳过插件以了解最终发送它们的付款链接。在第一页上,如果单击“添加”插件按钮,我将创建一个JavaScript cookie,如下所示:

onclick="createCookie("addon1", "yes", 0)"

在第二页上,我做了同样的事情,但为插件二创建了一个cookie:

onclick="createCookie("addon2", "yes", 0)"

JavaScript是

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=/";
 }

如果我已经创建了这两个cookie,我如何在三个页面周期结束时处理它们以了解存在哪些cookie,从而确定要重定向到哪个支付链接?

在第二页上,因为正在创建cookie,我还需要阅读并理解它是否存在。这让我很困惑。我是否需要额外的页面来处理这些是否存在?

2 个答案:

答案 0 :(得分:1)

如果第二个提示重定向您,则需要另一个页面。

要阅读Cookie,您可以使用 Zeus.js 的内置zeus.getCookie()功能。
zeus.getCookie()的作用如下:

  • 所有Cookie都会被压缩成一个字符串document.cookie
  • zeus.getCookie()从字符串
  • 中选出所需的密钥
  • 返回一个字符串。

例如,如果您设置了Cookie document.cookie = "like=trains",则可以使用zeus.getCookie("like")返回值trains(作为字符串)。


要使用 Zeus.js ,只需输入

<强> <script src="https://rawgithub.com/thetakeaway/zeus.js/master/zeus.js"></script>

<head></head>中的

干杯!

答案 1 :(得分:0)

如果您想要Cookie的价值,可以通过document.cookie展开;来拆分网站的Cookie,然后通过=展开部分内容来获取饼干数组:

var cookies = document.cookie.split(';'); 
var cookieObject = {}; 
for(var i=0;i<cookies.length;i++){
    var c = cookies[i].split('=')
    cookieObject[c[0]]=c[1];
}

您可以在实际想要查看Cookie是否已设置之前运行此操作,并检查cookieObject是否包含addon1addon2

如果只是存在,如果您想要的cookie,您可以简单地为document.cookie创建搜索功能,如:

function doesCookieExist(cookie) {
    return document.cookie.search(cookie) >= 0;
}

返回true或false。您可以通过组合上述两个函数使其更加健壮。转换为数组,然后搜索数组。