2015-08-28 236 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