Javascript cookies在Chrome上不起作用

Javascript cookies在Chrome上不起作用,javascript,google-chrome,cookies,Javascript,Google Chrome,Cookies,我正在使用这样一个简单的javascript代码来处理cookies var theCookie = "login = ScottPilgrimVStheWorld"; document.cookie=theCookie; alert(document.cookie); 我只有一个简单的html页面,带有一个主体、一个标题和这个javascript代码 问题是,这在IE和FF中起作用,但在GC 33.0.1750.154 m中不起作用。我得到一个空警报框。我浏览了一下GC设置,没有发现任何关

我正在使用这样一个简单的javascript代码来处理cookies

var theCookie = "login = ScottPilgrimVStheWorld";

document.cookie=theCookie;
alert(document.cookie);
我只有一个简单的
html
页面,带有一个主体、一个标题和这个javascript代码

问题是,这在IE和FF中起作用,但在GC 33.0.1750.154 m中不起作用。我得到一个空警报框。我浏览了一下GC设置,没有发现任何关于阻止/取消阻止Cookie的信息。发生了什么事?有什么建议吗

提前谢谢

编辑

下面是另一个读取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;
}
函数getCookie(searchName)
{
var cookies=document.cookie.split(“;”);
对于(变量i=0;i

James Edwards和Cameron Adams的“JavaScript文集101基本技巧、技巧和黑客”,版权所有©2006 SitePoint Pty。有限公司,pp145-146

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

var theCookie = "login=ScottPilgrimVStheWorld";
在铬33(33.0.1750.154)上测试

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

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

尝试修改cookie的变量

var theCookie = "login=ScottPilgrimVStheWorld;";
我们必须这样做,因为如中所述,cookie的模板是

[cookie name]=[cookie name val];[下一步是可选的]过期=[过期日期]

而且,我不认为你可以像那样直接得到饼干。您必须创建一个函数:

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 "";
}

希望对您有所帮助。

您能创建小提琴或页面来演示吗?它似乎工作正常。@D.卡西波维奇这里有一把小提琴
http://jsfiddle.net/slevin/kKfJK/2/
。我根据这里的答案编辑了代码。这一个甚至没有提醒任何东西好吧,我在提醒中看到
login=ha
。你不知道吗?顺便说一句,您将javascript粘贴到css中。将其粘贴到左下角的框中。这里:@D.Kasipovic Oups,错地方了!是的,我在js上粘贴了js,效果很好。仍然只适用于小提琴,而不是我的网站。我使用了chris97ong函数,但仍然没有对GC发出任何警报。我不明白。好吧,如果它在fiddle中工作,那么它是有效的js,所以错误可能在其他地方。如果没有看到您的代码,我们无法真正了解这一点。这是一把小提琴
http://jsfiddle.net/slevin/kKfJK/2/
。我根据这里的答案编辑了代码。这一个甚至没有提醒任何东西我的坏,我粘贴在CSS框JS。这是正确的小提琴
http://jsfiddle.net/slevin/kKfJK/6/
。即使没有你的功能也能工作。此外,您的函数在IE、FF中工作,但在GC中仍然不工作。我不明白。它只是提醒一个空框。而且,在GC上启用了cookie。该站点是localhost,url是
file:///C:/Program%20Files%20(x86)/Apache%20软件%20Foundation/Apache2.2/htd‌​ocs/test/index.html
让我大吃一惊!我使用Dreamweaver。只有当我建立一个网站时,cookies在GC中也能正常工作。现在url是。可能与任何脚本有关。您只能读取由同一域的网页设置的cookie。?无论如何,谢谢你。另外,请检查我的问题,了解阅读cookies的另一个功能。这里有一个fiddle
http://jsfiddle.net/slevin/kKfJK/2/
。我根据这里的答案编辑了代码。这一个甚至不会提醒任何东西如果您在jsfidddle ui的适当小部件(左下角,名为“javascript”)而不是css字段中输入javascript,它就像一个符咒一样工作!是的,我的错。但是,我的网站上仍然没有任何警报。只适用于小提琴。代码就是这个
http://jsfiddle.net/slevin/kKfJK/6/
。我还使用了上面的chris97ong函数。GC上仍然没有任何内容。只是一个空盒子。在GC上启用cookie。该站点是localhost,url是
file:///C:/Program%20Files%20(x86)/Apache%20软件%20Foundation/Apache2.2/htdocs/test/index.html
。太棒了!打开开发人员工具(ctrl+shift+j)并在控制台中输入“document.cookie”。您将看到为当前所在页面存储的cookies。您还可以尝试在控制台中输入js代码。使用cookies和文件URL时可能会出现问题,如果您希望签出此内容而无法访问web服务器,我可以将您的测试页上载到web服务器。我使用Dreamweaver。只有当我建立一个网站时,cookies在GC中也能正常工作。现在url是
http://localhost/test/index.html
。可能与
有关,任何脚本都只能读取由同一域的网页设置的cookie。
?无论如何,谢谢你。另外,请检查我的问题,了解阅读cookies的另一个功能。
alert(getCookie("login"));