繁体   English   中英

无法在Cookie中设置IE9

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM