2010-11-08 77 views
0

我是新來編程,並嘗試編寫一個JavaScript函數來設置一個cookie值,當一個彈出按鈕被點擊。Javascript函數來設置cookie值

在home.aspx

<input id="btnCanOK2" type="button" value="Close" class="popupButton" runat="server" onclick="return btnClose_Click" /> 

此按鈕,我已經寫了一個javascript函數:

function btnClose_Click() 
{ 
document.cookie = 'cookieName=closed; value=dontshowagain'; 
} 

在merchant.login頁

在代碼中的其他頁面的背後,它必須檢查cookie的值是否設置爲「dontshowagain」。如果它被設置爲該值,則該函數不應該再次顯示彈出窗口。我的任務不是在不同的頁面上顯示彈出窗口。如果它關閉一次,它必須再次停止顯示,直到瀏覽器關閉。

if (Request.Cookies["closed"] == null) 
{ 
ModalPopupextender2.Show(); 
} 
else if(Request.Cookies["closed"].Tostring() == "dontshowagain") 
{ 
ModalPopupextender2.Hide(); 
} 

我在哪裏做錯了?現在cookie的值總是空:(

感謝很多提前

回答

1

你不設置單獨的cookieNamevalue cookie的名稱是什麼在左側=的:。

document.cookie= 'closed=dontshowagain;path=/'; 

(可選的追蹤路徑參數可確保cookie被髮送到網站上的每個頁面,而不僅僅是它被設置的部分。)

+0

+1確保檢查路徑參數爲@bobince所示(例如你可以看到stackove chat.stackoverflow上的流餅乾,但不在stackexchange上,因爲它是另一個域)。還可以使用一個插件來檢查cookie是否在那裏(firecookie或內置在鉻/ safari上) – 2010-11-08 02:22:42

+0

@Pablo:實際上'domain'的故事有點棘手。 SO沒有設置「domain」,所以它的cookies不應該在chat.SO上可見。但是由於瀏覽器對默認範圍的不同處理,它們在IE中。 – bobince 2010-11-08 02:43:51