35

document.cookieコンソールに移動して入力することでChromeに表示される場合は、次のように入力document.cookie;します。

"name=John; gender=male";

しかし、たとえば、入力すると、文字列の先頭にdocument.cookie = 5;追加するだけなので、次のようになります。5;

"5; name=John; gender=male";

私が試してみるとdocument.cookie = null;、それは何もしません。

どうすればいいの?変数ですね。では、なぜ代入演算子が正常に機能しないのでしょうか。それは実際には、実際の変数ではなく、ほんの少しの構文糖衣ですか?もしそうなら、砂糖は正確に何を覆っていますか?

4

3 に答える 3

37

document.cookie非常に特殊な動作をします。これまで見てきたように、それに割り当てると、すべてのCookieを置き換えるのではなく、Cookie(または複数のCookie)が追加(または更新)されます。それは非常に珍しいことです。

MDNでそれについてすべて読んでください。

于 2011-07-22T15:07:12.443 に答える
6

MDNを見てみませんか?

代入演算子の右側の文字列はdocument.cookies、セミコロンで区切られたキーと値のペアのリストである必要があります。つまり、 Cookiedocument.cookie = "aKey=5"を設定/更新します。aKey

そうです、document.cookie特別な振る舞いを示しています。

于 2011-07-22T15:06:15.273 に答える
3

これがあなたの「問題」の例です。また、それは次のように言っています:

有効期限をゼロに更新するだけでCookieを削除できます。

于 2011-07-22T15:07:52.887 に答える