2015-08-28 199 views
-8

我想从网站中删除cookie。有人告诉我使用这个代码。但我不知道代码的功能。请告诉我。代码是什么意思?

这里ref是在站点中生成的cookie名称。

var referrer = document.referrer; //returns the URL of the document that loaded the current document. 
 
if (referrer.indexOf(location.host) == -1) { 
 
    console.log('1'); 
 
    jQuery.removeCookie('ref'); 
 
    if (jQuery.cookie('ref') === undefined) { 
 
    jQuery.cookie('ref', referrer, { 
 
     expires: .5, 
 
     path: '/' 
 
    }); 
 
    referrer = jQuery.cookie('ref'); 
 
    console.log('2'); 
 
    } else { 
 
    console.log('3'); 
 
    jQuery.removeCookie('ref'); 
 
    referrer = jQuery.cookie('ref'); 
 
    } 
 
} else { 
 
    console.log('4'); 
 
    referrer = jQuery.cookie('ref'); 
 
}

+0

您应该搜索每个功能的功能。 SO是为了帮助解决问题。你不应该要求解释算法。我将不得不提出这个问题。 –

回答

2

当用户到你的网站,说:

http://example.com/ 

现在,document.referrer""(空白),因为它不是 “中提到” 通过任何链接。用户输入它。 document.referrer保存打开页面的链接。

现在,当主页上有像http://example.com/signup一个链接,用户点击它,并转到页,并且页面有以下代码:

document.referrer; // This would give http://example.com/ as the referrer. 

当你正在检查这一点:

referrer.indexOf(location.host) == -1 

到底发生的是:

"http://example.com/".indexOf("http://example.com/") == -1 

哪里,都具有小故事NT。这表明链接已经从相同域中的本地页面中点击。当引用者不是本地页面时,然后在Cookie中添加引荐来源,并执行一些过程就是if条件的作用。

代码中有很多条件。它们是用户可能来自哪里的情况。

案例1:用户并非来自任何地方。它返回undefined。您将获得登录到控制台的2

案例2:如果他来自不同的页面,您将获得登录到控制台的3

案例3:如果他来自同一页面,您将获得登录到控制台的4