我使用这样一个简单的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
答案 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]
。
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"));
希望有所帮助。