我正在尝试对 javascript cookie 进行演示测试。请在下面找到我为测试编写的代码。
<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,然后我尝试将 cookie 设置为具有 1 天过期时间的“name=test”。使用警报我可以看到该 cookie 中设置的值。在下一行中,我尝试通过将过期日期设置为当前 date-1 来删除 cookie。如果我使用 alert 打印 cookie 值,cookie 将显示为 currentdate-1 的过期日期。
我的问题是,
- 在 Mozilla 中,如果我刷新浏览器并尝试执行相同的步骤,则第一个警报会显示 cookie 值,其过期时间为 currentdate-1。为什么即使我在脚本的最后一行删除,我也会获得 cookie 值。但是,一旦我关闭浏览器,cookie 值为空。为什么会这样?
- 在 chrome 中,如果我运行相同的代码,则不会设置任何 cookie。为什么我无法在 chrome 浏览器中设置 cookie。
请告诉我为什么跨浏览器会出现这种差异。