2012-07-26 30 views
2

不知道如何做到這一點,我在頁面上的鏈接上設置了一個jQuery cookie,然後打開一個新窗口。因此在窗口1上 - Cookie值設置爲XXX。車窗2一個頁面,用戶可以更新此cookie值的任何東西,即XYXYYY在新窗口中記住我的jQuery Cookie值

所以我希望能夠與更新窗口1 cookie的值是什麼,用戶在窗口中改變2.

目前我有2個窗口與$.mycookie(test, xxx)$.mycookie(test, yyy)。如果用戶關閉窗口2沒有更新他的改變窗口1.

回答

1

要明確地讓供站點上的所有路徑的餅乾,確保路徑設置:

$.cookie("example", "foo", { path: '/' }); 

將其限制在一個而不是具體路徑:

$.cookie("example", "foo", { path: '/foo' }); 

如果設置爲「/」,cookie將整個域範圍內可用。如果設置爲'/ foo /',則cookie將僅在/ foo /目錄和所有子目錄(如/ foo/bar/of域)中可用。默認值是設置cookie的當前目錄。

+0

是的,我已經把我的路徑「/」,而是通過在窗口2改變我的cookie值在窗口沒有更新我的cookie的值1 – user1010701 2012-07-26 12:37:35

+0

@ user1010701我似乎無法理解您的cookie未更新的原因。可能cookie會過期。你可以試試:$ .cookie('example','value',{expires:14,path:'/'});?這會將到期時間設置爲+14天。 – 2012-07-26 13:05:27

+0

我需要刷新我的父窗口,當我關閉子窗口,所以使用window.opener.location.reload();刷新我的cookie,這工作 – user1010701 2012-07-26 14:14:26

0

你是對的,你需要刷新開啓者窗口。

Window-1通過javascript打開Window-2(彈出窗口),並且此彈出窗口需要有一個函數,當它關閉時觸發unload事件並且/或者單擊了刷新父窗口的按鈕/鏈接。只有刷新後才能更改以這種方式進行的Cookie更改。

簡單的窗口-2示例:

<script> 
function whatever() { 
    $.cookie("test", $('input[name=cookievalue]').val()); 
    if (window.opener != null) { 
     window.opener.location.reload(); 
     window.close(); 
    } 
} 

$('button[name=clicker"]').bind('click', function(){ 
    whatever(); 
}); 

/* optionall you can also do an unload event, 
* but you should probably check if you ran whatever() more then 
* once and not run it a second time. 
*/ 
$(window).unload(function(){ 
    whatever(); 
}); 
</script> 

<input type="text" value="" name="cookievalue"> 
<button name="clicker">Change Cookie and close</button> 
+0

謝謝安東尼,非常有用,我會試試這個,並會讓你知道我是怎麼做到的。 – user1010701 2012-07-30 14:42:39