我正在使用以下代码:
<script>
var time = new Date();
time.setFullYear(time.getFullYear() + 1, time.getMonth(), time.getDay());
expires = ";expires=" + time.toGMTString();
document.write(expires);
document.cookie = "aardvark=cats; expires= " + time +"; path=/";
document.write('\ndone: ' + document.cookie);
</script>
我已将其放入html文件并在本地运行,并尝试在JSFiddle上运行它,并尝试将其上传到我的网站并在我的浏览器中访问它。
在Internet Explorer 9中,我的计算机上没有创建cookie。任何想法为什么不呢?
答案 0 :(得分:1)
在查看代码时,很可能在DOM完全加载后执行此代码段。加载dom会隐式关闭文档,而document.write
需要打开文档。如果不是三件事中的一件事可能发生:
检查此问题,了解document.write
:不使用Why is document.write considered a "bad practice"?
由于已经提到的链接问题的解决方案也提到(并且因为OP也固定了这一点)在XHTML dom上调用document.write
根本不起作用。现在默认情况下FF / Chrome / Chromium / Safari / Opera都可以将DOM渲染为HTML5。 IE9可能会选择XHTML过渡或者某种东西......显式设置一个doctype似乎是op的修复,所以我猜<!DOCTYPE html>
是什么诀窍
答案 1 :(得分:0)
我现在修好了。需要设置DOCTYPE。
我认为Cookie永远存在,并且可以使用默认的DOCTYPE,但事实并非如此。