cookies不适用于Chrome

时间:2014-04-08 10:50:51

标签: javascript google-chrome cookies

我使用这样一个简单的javascript代码来玩cookie

var theCookie = "login = ScottPilgrimVStheWorld";

document.cookie=theCookie;
alert(document.cookie);

我只有一个简单的html页面,其中包含正文,标题和此javascript代码。

问题是,这适用于IE和FF,但不适用于GC 33.0.1750.154 m。我得到一个空警报框。我瞥了一眼GC设置,发现阻塞/解锁阻止没有任何内容。怎么了?有什么提示吗?

提前致谢。

修改

这是另一种阅读cookie的功能

function getCookie(searchName)
{
var cookies = document.cookie.split(";");
for (var i = 0; i < cookies.length; i++)
{
var cookieCrumbs = cookies[i].split("=");
var cookieName = cookieCrumbs[0];
var cookieValue = cookieCrumbs[1];
if (cookieName == searchName)
{
return cookieValue;
}
}
return false;
}
詹姆斯·爱德华兹和卡梅伦·亚当斯的“JavaScript Anthology 101 Essential Tips,Tricks&amp; Hacks”,版权所有©2006 SitePoint Pty.Ltd。,pp145-146

2 个答案:

答案 0 :(得分:1)

添加到cookie jar的赋值字符串中不允许有空格。尝试

var theCookie = "login=ScottPilgrimVStheWorld";

在chrome 33(33.0.1750.154)上测试。

编辑: chris97ong的说法是正确的,你需要额外的逻辑来从cookie jar document.cookie中提取一个cookie。如果你需要,使用他的代码或匹配正则表达式:

var mycookie = document.cookie.replace(/(^|;)login=([^;]+)(;|$)/, "$2");

答案 1 :(得分:1)

尝试修改变量theCookie

var theCookie = "login=ScottPilgrimVStheWorld;";

我们必须这样做,因为如W3Schools中所述,Cookie的模板是

[cookie-name]=[cookie-name-val]; [Next is optional] expires=[expiry_date]

<小时/> 另外,我认为你不能直接得到这样的cookie。你必须创建一个函数:

function getCookie(cname)
{
var name = cname + "=";
var ca = document.cookie.split(';');
for(var i=0; i<ca.length; i++) 
{
var c = ca[i].trim();
if (c.indexOf(name)==0) return c.substring(name.length,c.length);
}
return "";
}

因此,您将警报更改为以下内容:

alert(getCookie("login"));

希望有所帮助。