2010-06-30 76 views
0

我在我的应用程序中使用了Cookie插件。我在哪里显示来自cookie的一些信息。 它与Firefox正常工作,但与IE浏览器有一些问题。 它工作正常,如果我在IE中打开一个新的标签,它显示cookie的值,但如果我关闭IE浏览器窗口它清除所有的cookie。 这不是与mozilla的情况下,每次我打开mozilla它显示cookie的这些特定值。以下是我用来设置/获取Cookie的代码。在关闭IE浏览器窗口时Cookie被清除

function setCookies(){<br/>  
    if($('select[id$="ddlFromStation"]')[0].selectedIndex!=0){<br/> 
     $.cookie('d_from',$('select[id$="ddlFromStation"]').val());<br/> 
    }<br/> 
    if($('select[id$="ddlToStation"]')[0].selectedIndex!=0){<br/> 
     $.cookie('d_to',$('select[id$="ddlToStation"]').val());<br/> 
    }<br/> 
    if($('input[id$="txtFromStation"]').val()!=""){<br/> 
     $.cookie('i_from',$('input[id$="txtFromStation"]').val());<br/> 
    }<br/> 
    if($('input[id$="txtToStation"]').val()!=""){<br/> 
     $.cookie('i_to',$('input[id$="txtToStation"]').val());<br/> 
    }<br/> 
    return true;<br/> 
}<br/> 
$(document).ready(function(){<br/> 
if($.cookie('d_from')!=null){<br/> 
    $('select[id$="ddlFromStation"]').val($.cookie('d_from'))<br/> 
}<br/> 
if($.cookie('d_to')!=null){<br/> 
    $('select[id$="ddlToStation"]').val($.cookie('d_to'))<br/> 
}<br/> 
if($.cookie('i_from')!=null){<br/> 
    $('input[id$="txtFromStation"]').val($.cookie('i_from'))<br/> 
}<br/> 
if($.cookie('i_to')!=null){<br/> 
    $('input[id$="txtToStation"]').val($.cookie('i_to'))<br/> 
}<br/> 
}); <br/> 

回答

1

您没有设置过期时间,默认情况下,Cookie应在浏览器关闭时过期。我不知道为什么Mozilla 不是这样做是真正的错误。

尝试:

$.cookie(COOKIE_NAME, VALUE, { expires: 10 }); /* Expires in 10 days */ 
+0

谢谢你,亲爱的,它的工作。 – azazi 2010-06-30 08:59:36

0

Cookie是易失性的 - 取决于浏览器设置,它们可能在浏览器关闭时被清除。您可以设置Firefox来执行此操作,因此它不是唯一的Internet Explorer。但是,您可能会发现为Cookie设置较长的到期时间以便让浏览器保留它们的好处。

如果您想保留信息,您需要在服务器上的数据库中执行此操作,因为您知道它不会被清除!