2015-07-06 87 views
0

這個例子在firefox,opera和chrome中工作正常,但不工作/ cookie不保存在IE中。document.cookie在IE中不工作

function setCookie(name,value,exdays) 
    { 
     var exdate=new Date(); 
     exdate.setDate(exdate.getDate() + exdays); 
     var value=escape(value) + ((exdays==null) ? "" : "; expires="+exdate.toUTCString()); 
     document.cookie=name + "=" + value; 
    } 

    function getCookie(name) 
    { 
     var i,x,y,ARRcookies=document.cookie.split(";"); 
     for (i=0;i<ARRcookies.length;i++) 
     { 
      x=ARRcookies[i].substr(0,ARRcookies[i].indexOf("=")); 
      y=ARRcookies[i].substr(ARRcookies[i].indexOf("=")+1); 
      x=x.replace(/^\s+|\s+$/g,""); 
      if (x==name) 
      { 
      return unescape(y); 
      } 
      } 
    } 
+1

它是如何「不工作」?你有什麼錯誤嗎?你看到了什麼確切的行爲?你使用的是什麼版本的IE,Firefox等? – Dai

+0

我使用ie8和9,歌劇21,鉻43,火狐34,我不知道如何得到/看到任何錯誤,但這裏是我的相關問題兄弟http://stackoverflow.com/questions/31231222/ document-cookie-setcookie-not-working-on-safari -and-ie @Dai – userknowmore

回答

0

IE的編碼問題不像所有其他瀏覽器,有些語言不是自動編碼,而是%3F編碼。

「%3F」=「?」標誌。

您需要在IE上查看您的cookie並檢查內容,檢查文件是否正確編碼。如果沒有,請這樣使用:

document.cookie=name + "=" + (encodeUriComponent)value; 
+0

不工作的兄弟。 @Barr J – userknowmore

+0

什麼是在你的cookie中寫入IE? –

+0

相關問題http://stackoverflow.com/questions/31231222/document-cookie-setcookie-not-working-on-safari-and-ie – userknowmore