JavaScript Cookies检查/设置/删除
我只是想看看有没有饼干, 设置/重置cookie 1天, 并在窗口/选项卡关闭时删除cookie 我正试图用JavaScript实现这一点,但地狱JS是一种愚蠢的语言(我发誓),再加上我的愚蠢 不管怎样,我现在做的是:JavaScript Cookies检查/设置/删除,javascript,cookies,Javascript,Cookies,我只是想看看有没有饼干, 设置/重置cookie 1天, 并在窗口/选项卡关闭时删除cookie 我正试图用JavaScript实现这一点,但地狱JS是一种愚蠢的语言(我发誓),再加上我的愚蠢 不管怎样,我现在做的是: function checkcookie(name) { //Can't figure this one out //I want to check wheather the cookie is set or not //if yes //{ re
function checkcookie(name)
{
//Can't figure this one out
//I want to check wheather the cookie is set or not
//if yes
//{ reset cookie + ... }
//else
//{ set cookie + ... }
}
function setcookie(name,value,day)
{
var expireDate = new Date();
expireDate.setSeconds(expireDate.getSeconds()+day*24*60*60*1000);
document.cookie = name + "=" + value + ";path=/;expires=" + expireDate.toGMTString();
}
function delcookie(name)
{
setcookie(name,"",-1);
}
任何类型的答案都是值得赞赏的,thx会提前提供。Quirksmode.org已经开始编写与document.cookie
(一个天生不友好的对象)交互的包装器方法
本文介绍了如何实现以下方法:readCookie
、createCookie
和eraseCookie
通过这些方法,很容易实现checkCookie
函数,也就是说,如果readCookie
返回空值或不返回空值
这是您的检查cookie
:
function checkCookie(name)
{
return readCookie(name) != null;
}
以下是本文提供的其他三个功能:
function createCookie(name,value,days) {
if (days) {
var date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
var expires = "; expires="+date.toGMTString();
}
else var expires = "";
document.cookie = name+"="+value+expires+"; path=/";
}
function readCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for(var i=0;i < ca.length;i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1,c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
}
return null;
}
function eraseCookie(name) {
createCookie(name,"",-1);
}
函数createCookie(名称、值、天数){
如果(天){
变量日期=新日期();
date.setTime(date.getTime()+(天*24*60*60*1000));
var expires=“;expires=“+date.togmString();
}
else var expires=“”;
document.cookie=name+“=”+value+expires+“path=/”;
}
函数readCookie(名称){
变量nameEQ=name+“=”;
var ca=document.cookie.split(“;”);
对于(变量i=0;i
Quirksmode.org在编写与document.cookie
(一个天生不友好的对象)交互的包装器方法时遇到了麻烦
本文介绍了如何实现以下方法:readCookie
、createCookie
和eraseCookie
通过这些方法,很容易实现checkCookie
函数,也就是说,如果readCookie
返回空值或不返回空值
这是您的检查cookie
:
function checkCookie(name)
{
return readCookie(name) != null;
}
以下是本文提供的其他三个功能:
function createCookie(name,value,days) {
if (days) {
var date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
var expires = "; expires="+date.toGMTString();
}
else var expires = "";
document.cookie = name+"="+value+expires+"; path=/";
}
function readCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for(var i=0;i < ca.length;i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1,c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
}
return null;
}
function eraseCookie(name) {
createCookie(name,"",-1);
}
函数createCookie(名称、值、天数){
如果(天){
变量日期=新日期();
date.setTime(date.getTime()+(天*24*60*60*1000));
var expires=“;expires=“+date.togmString();
}
else var expires=“”;
document.cookie=name+“=”+value+expires+“path=/”;
}
函数readCookie(名称){
变量nameEQ=name+“=”;
var ca=document.cookie.split(“;”);
对于(变量i=0;i
在这里,试试看
function checkcookie(name)
{
if (name!=null && name!="")
{
//reset cookie
cookie_value="test";
document.cookie=name + "=" + cookie_value;
}
else
{
//if there is no cookie, create a new one
cookie_value="test";
document.cookie=name + "=" + cookie_value;
}
}
function setcookie(name,day)
{
var expireDate = new Date();
expireDate.setSeconds((expireDate.getSeconds()+day*24*60*60*1000);
document.cookie = "Name=" + name + ";path=/;expires=" + expireDate.toGMTString();
}
function delcookie(name)
{
setcookie(name,"",-1);
}
来,试试看
function checkcookie(name)
{
if (name!=null && name!="")
{
//reset cookie
cookie_value="test";
document.cookie=name + "=" + cookie_value;
}
else
{
//if there is no cookie, create a new one
cookie_value="test";
document.cookie=name + "=" + cookie_value;
}
}
function setcookie(name,day)
{
var expireDate = new Date();
expireDate.setSeconds((expireDate.getSeconds()+day*24*60*60*1000);
document.cookie = "Name=" + name + ";path=/;expires=" + expireDate.toGMTString();
}
function delcookie(name)
{
setcookie(name,"",-1);
}
您可以在此处测试Quirksmode代码:
代码正在运行,因此一定是其他原因导致了您的问题。。。因此,如果您在jsfiddle.net中运行它,请查看它对您有什么帮助-这可能有助于确定它是否是一个浏览器设置您可以在此处测试Quirksmode代码:
代码正在运行,因此一定是其他原因导致了您的问题。。。因此,如果您在jsfiddle.net中运行它,看看它对您有什么帮助-这可能有助于确定它是否是一个浏览器设置也许您可以尝试更改
expireDate.setSeconds((expireDate.getSeconds()+day*24*60*60*1000);
到expireDate.setSeconds()+day*24*60*60*1000);
?看起来你正在尝试重新发明以前已经做了数十亿次的东西。你为什么要用你讨厌的语言编写库?只需搜索“javascript cookie库”或者使用插件:pJavaScript是一种很棒的语言。浏览器提供cookie信息的方式很愚蠢。请把责任推到它应该负责的地方。我很高兴T.J.这么说,因为处理cookie的困难与JavaScript无关。首先,浏览器提供了一个糟糕的“API”其次,Cookie是HTTP缺失领域的权宜之计。第三,Cookie可以在很多地方修改,而不仅仅是脚本。第四,由于“会话”之间的差异,Cookie的过期时间令人困惑Cookie和具有特定过期日期的Cookie。JavaScript与此无关。我在这方面有很多经验…@Shepherd:不,我不是在开玩笑。很明显,你根本不懂这种语言,这与当前许多其他主要语言有很大的不同。如果你必须使用JavaScript,我建议你强烈建议你放弃这种态度,花时间好好学习这门语言;否则,你会不断地用脑袋去打击你的错误观念,并感到恼火。如果你不必这样做,千万不要这样做,继续用其他语言培养你的技能。我并不是说它在任何方面都是完美的(它不是),但我从未见过这样的语言。也许你可以尝试将expireDate.setSeconds((expireDate.getSeconds()+day*24*60*60*1000);
更改为expireDate.setSeconds(+day*24*60*60*1000);
?看起来你正在尝试重新发明以前已经做了数十亿次的东西。你为什么要用你讨厌的语言编写库?只需搜索“javascript cookie库”或者使用插件:pJavaScript是一种很棒的语言。浏览器提供cookie信息的方式很愚蠢。请把责任推到它应该负责的地方。我很高兴T.J.这么说,因为处理cookie的困难与JavaScript无关。首先,浏览器提供了一个糟糕的“API”其次,Cookie是HTTP缺失领域的权宜之计。第三,Cookie可以在很多地方修改,而不仅仅是脚本。第四,由于存在di,Cookie的过期时间令人困惑