2016-11-10 59 views
0

我有一個CBLL類以下Cookie名稱和Cookie項目作爲如何分配值在餅乾的Javascript

public const string COOKIE_NAME_TDR_FILTER = "jS.TDR.Filter"; 
    public const string COOKIE_DF_KEY = "DFKey"; 

在頁面,我們嘗試將值分配給餅乾因此它可以用在被叫網頁.aspx.cs

protected string TDRFilterCookieName = CBLL.COOKIE_NAME_TDR_FILTER; 
    protected string CookieDFKey = CBLL.COOKIE_DF_KEY; 

在.aspx中使用javascript我試圖爲CookieDFKey分配值。所以它可以在以後使用。

var cookie = new Cookie("<%= this.TDRFilterCookieName%>"); 
    cookie.<%= this.CookieDFKey %> = id; 
    cookie.store(); 
    alert(cookie.<%= this.CookieDFKey %>); 

試過上面的代碼但將像Cookie錯誤()沒有被定義。請幫我這是我新的JS腳本

回答

1

請仔細閱讀documentation about cookies

// To create a cookie 
document.cookie = "${key}=${value}"; // optional expiration date, see doc. 

// To add a new cookie 
document.cookie = "${key}=${value}"; // As you can see, `document.cookie` is not a normal Object holding a string 

W3學校提供了很好的方法來添加/獲取餅乾,我會複製/粘貼在這裏(全部歸功於他們):

function setCookie(cname, cvalue, exdays) { 
    var d = new Date(); 
    d.setTime(d.getTime() + (exdays*24*60*60*1000)); 
    var expires = "expires="+ d.toUTCString(); 
    document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/"; 
} 

function getCookie(cname) { 
    var name = cname + "="; 
    var ca = document.cookie.split(';'); 
    for(var i = 0; i <ca.length; i++) { 
     var c = ca[i]; 
     while (c.charAt(0)==' ') { 
      c = c.substring(1); 
     } 
     if (c.indexOf(name) == 0) { 
      return c.substring(name.length,c.length); 
     } 
    } 
    return ""; 
} 

和一個函數deleteCookie(cname),我只是寫道:

function deleteCookie(cname) { 
    document.cookie = cname + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC"; 
} 
+0

你實際需要存儲的那對「key:value」是什麼? 'CookieDFKey:TDRFilterCookieName'?或者'CookieDFKey:id'? – nicovank

+0

鍵應該是'CookieDFKey',值應該是'id'。我們應該如何在沒有到期日期的情況下給予。 – trx

+0

導入上面的'setCookie'函數,然後通過'setCookie(<%= this.CookieDFKey%>,id,30)'調用它。必須有到期日期。當您沒有指定任何關閉瀏覽器時,默認情況下該Cookie會被刪除。通過放置30,cookie將在一個月後過期。如果你需要他們,你可以放更多的日子。 – nicovank