2

これを行う方法がわかりません。ページ上のリンクに jQuery Cookie を設定すると、新しいウィンドウが開きます。したがって、ウィンドウ 1 では、Cookie の値が に設定されXXXます。ウィンドウ 2 は、ユーザーがこの Cookie 値を何かに更新できるページXYXですYYY

したがって、ウィンドウ 1 の Cookie 値を、ユーザーがウィンドウ 2 で変更した内容で更新できるようにしたいと考えています。

現時点では、 と の 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

その通りです。オープナー ウィンドウを更新する必要があります。

javascript を介して Window-1 が 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>
于 2012-07-26T18:56:43.427 に答える