2

不知道该怎么做,我在页面上的链接上设置了一个 jQuery cookie,然后打开一个新窗口。所以在窗口 1 - cookie 值设置为XXX. 窗口 2 是一个页面,用户可以在其中将此 cookie 值更新为任何值,例如XYXYYY等等。

所以我希望能够使用用户在窗口 2 中更改的内容来更新窗口 1 中的 cookie 值。

目前我有 2 个窗口,其中一个带有$.mycookie(test, xxx)$.mycookie(test, yyy)。如果用户关闭窗口 2,他的更改不会在窗口 1 中更新。

4

2 回答 2

1

要明确使 cookie 可用于您域上的所有路径,请确保设置了路径:

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

要将其限制为特定路径:

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

如果设置为“/”,cookie 将在整个域中可用。如果设置为 '/foo/',则 cookie 将仅在 /foo/ 目录和 domain 的 /foo/bar/ 等所有子目录中可用。默认值是设置 cookie 的当前目录。

于 2012-07-26T12:25:00.500 回答
0

你是对的,你需要刷新打开器窗口。

Window-1 通过 javascript 打开 Window-2(弹出窗口),并且此弹出窗口需要在触发 unload 事件时调用一个函数,因为它在关闭时和/或在单击按钮/链接时会刷新父窗口。以您的方式发生的 Cookie 更改只能在刷新后生效。

简单的 Window-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>
于 2012-07-26T18:56:43.427 回答