2010-11-08 96 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