簡體   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