2017-04-07 82 views
0

我正在開發一個電子商店php網站。在我的購物車模板頁面中,我定義了一個javascript cookie,因爲我想存儲用戶在特定頁面上執行的特定選擇。代碼是從網站的特定頁面導航時刪除cookie

jQuery(document).ready(function($) { 
$("input[name=\"license-selector\"]").click(function(){ // when license-selector radio button is being clicked 
    var thisElem = $(this);        // value is being written to variable value 
    var value = thisElem.val(); 
    //localStorage: 
    sessionStorage.setItem("option", value);   // value stored in localstorage 
    //Cookies: 
    document.cookie="option="+value;     // value stored in cookie 
}); 
//localStorage: 
var itemValue = sessionStorage.getItem("option");  // value is being loaded into variable itemValue 


//Cookies: 
var n = document.cookie; 
if (n.indexOf("option=") !== -1) { 
    var cookieValue = n.substring(n.indexOf("option=")+7, n.indexOf(";")) // value is being loaded into variable cookieValue 
     if (cookieValue == "su") {single_user()}; 
     if (cookieValue == "mu") {multi_user()}; 
    } 
}); 

因此,cookie獲取單擊單選按鈕的值。到現在爲止還挺好。該腳本是從外部腳本文件調用的,該文件僅應用於此購物車頁面。現在

,我嘗試做的是每當用戶離開此車頁(而不是從網站客場刪除這個cookie,但是每當用戶決定訪問例如產品,同一個網站的主頁等我正在努力)。我想刪除Cookie,並讓訪問者在重新訪問購物車頁面時再次作出選擇。總結:......他們在購物車頁面,做出選擇,存儲cookie ......然後他們訪問例如商店頁面(或網站的任何其他頁面),cookie被刪除,並且當他們重新訪問購物車頁面(同一會話),他們必須再次進行相同的選擇(從而再次設置cookie)。

爲了刪除cookie,我已經在我的網站頭部(在head標籤關閉之前)暫時插入了這個腳本。

// Delete cookie 
// store url on load 

var currentPage = window.location.href; 
var cookiePage = 'http://localhost/my-site/cart/'; 

// listen for changes 
setInterval(function() 
{ 
    console.log(currentPage); 
    if (currentPage != cookiePage) 
    { 

     document.cookie = "option=; expires=Thu, 01 Jan 1970 00:00:00 GMT"; 
     var cookieValue = 0; 
    } 
}, 500); 

此腳本試圖檢查當前的網址,看看它是否在購物車頁面的URL匹配。這個檢查每半秒鐘完成一次。如果用戶不在購物車頁面,腳本理論上應該刪除Cookie ...

正如你正確猜測的...它不工作....任何幫助,使其工作將是巨大的讚賞。目標是在訪問者離開購物車頁面時刪除Cookie。順便說一句,我知道有onbeforeunload的解決方案,並調用一個函數來清空cookie,但我不想這個解決方案。使用onbeforeunload會刪除cookie,只要我點擊購物車頁面中的「更新購物車」按鈕,我不想要(當我點擊「更新購物車」時通過ajax更新購物車頁面)。

再次感謝!

回答

0

沒關係......我在經過一百萬次試驗和錯誤後進行了管理。當我點擊任何菜單項時,我決定綁定cookie刪除功能。畢竟它是如此簡單:(。