【问题标题】:document.cookie not working in IEdocument.cookie 在 IE 中不起作用
【发布时间】:2015-07-06 16:42:20
【问题描述】:

此示例在 Firefox、Opera 和 chrome 中运行良好,但无法运行/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);
            }
          }
    }

【问题讨论】:

  • 它是如何“不工作”的?你有任何错误吗?你看到了什么确切的行为?你用的是什么版本的IE、Firefox等?
  • 我正在使用 ie8 和 9、opera 21、chrome 43、firefox 34,我不知道如何在 ie 上获取/查看任何错误,但这是我的相关问题兄弟 stackoverflow.com/questions/31231222/…@Dai

标签: javascript cookies


【解决方案1】:

IE 与所有其他浏览器不同,存在编码问题,某些语言不会自动编码,而是采用 %3F 编码。

"%3F" = "?"符号。

您需要在 IE 上查看您的 cookie 并检查内容,检查文件是否正确编码。如果没有,请像这样使用它:

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

【讨论】:

猜你喜欢
  • 2011-10-10
  • 2014-12-08
  • 2013-06-03
  • 1970-01-01
  • 2010-10-30
  • 2011-07-31
  • 2012-05-16
  • 2016-06-01
  • 2012-10-30
相关资源
最近更新 更多