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