javascriptcookieでデモテストを実行しようとしています。私がテストのために書いた以下のコードを見つけてください。
<html>
<head>
<script type='text/javascript' >
function setcookie()
{
alert("check if cookie avail:" +document.cookie.split(';'));
var dt=new Date();
document.cookie='name=test';
document.cookie='expires='+dt.toUTCString()+';'
alert("now cookie val:" +document.cookie.split(';'));
dt.setDate(dt.getDate()-1);
document.cookie = "expires=" + dt.toUTCString() + ";"
alert("after deletion cookie val:" + document.cookie.split(';'));
}
</script>
</head>
<body>
<input id='txt' onchange='setcookie()' />
</body>
</html>
コードは次のように機能します、
最初に、これはそのブラウザにすでに存在するCookieを表示します。次に、1日の有効期限でCookieを「name=test」として設定しようとします。アラートを使用すると、そのCookieに設定されている値を確認できます。次の行では、有効期限を現在の日付-1に設定してCookieを削除しようとしています。アラートを使用してCookieの値を出力すると、Cookieは有効期限がcurrentdate-1として表示されます。
私の質問は、
- Mozillaで、ブラウザを更新して同じ手順を実行しようとすると、最初のアラートに、有効期限がcurrentdate-1であるCookie値が表示されます。スクリプトの最後の行で削除してもCookieの値を取得するのはなぜですか。ただし、ブラウザを閉じると、Cookieの値は空になります。なぜそうなのですか?
- Chromeでは、同じコードを実行すると、どちらのCookieも設定されません。ChromeブラウザでCookieを設定できないのはなぜですか。
このような違いがブラウザ間で発生する理由を教えてください。