[英]Can't get cookies to set in IE9
我正在使用以下代码:
<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。 任何想法为什么不呢?
查看代码时,很可能是在DOM完全加载后执行了此代码段。 加载dom会隐式关闭文档,而document.write
需要打开文档。 如果不是,则可能发生以下三种情况之一:
检查为什么不使用document.write
问题: 为什么document.write被认为是“不良做法”?
正如链接问题的公认分析者所提到的那样(由于这也解决了OP的问题),在XHTML dom上调用document.write
根本行不通。 如今,默认情况下,FF / Chrome / Chromium / Safari / Opera可能都将DOM呈现为HTML5。 IE9可能会选择XHTML过渡之类的东西。。。显式设置doctype似乎是该操作的解决方案,所以我猜测<!DOCTYPE html>
是解决问题的办法
我已经修复了。 需要设置DOCTYPE。
我认为cookie永远存在,并且可以使用默认的DOCTYPE来工作,但事实并非如此。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.