现在要用JS写一个cookie,以前没写过,我看了下网上的资料,自己写了个
function addcookie(eywaId,value,expires){
var data=new Date();
var expiresdays=15;
data.setTime(data.getTime()+expiresdays*24*60*60*1000);
var value=Math.floor(Math.random()*1000000000);
var eywaId=eywaId+"="+escape(value);
document.cookie=eywaId+";expires="+data.toGMTString();
}
本来这是要在cookie中插入一个Id标识符的,可我看了下cookie文件,并没有出现这个ID,要怎样才能完成这个功能,请高手帮忙解决下
function addcookie(eywaId,value,expires){
var data=new Date();
var expiresdays=15;
data.setTime(data.getTime()+expiresdays*24*60*60*1000);
var value=Math.floor(Math.random()*1000000000);
var eywaId=eywaId+"="+escape(value);
document.cookie=eywaId+";expires="+data.toGMTString();
}
本来这是要在cookie中插入一个Id标识符的,可我看了下cookie文件,并没有出现这个ID,要怎样才能完成这个功能,请高手帮忙解决下
解决方案 »
- javascript:function()內部的this指什么?
- 怎么验证文本框里输入的不是( @ # ! ¥ % ……)等特殊字符 谢谢哦
- |zyciis| 我自己写了一个图片按比例缩放的,但是当网速不是很快的时候还是会看到图片把网页撑开 在怎么办 谢谢
- 有没有单击下拉列表触发的事件啊?
- 在IE下,怎么使页面窗体没有工具条等,使它最大化?
- 来看看这个最简单的问题吧
- e.options.add(new Option(a[i], a[i])
- 如何让动态创建的表格不显示边框?
- 一个非常简单的,获得本机日期的问题
- 有没有办法?!!!
- jquery 点击文本框,弹出window,此时文本框不能继续输入
- 新手提问:jquery如何找到HTML元素并且设置样式?
{
var exdate=new Date()
exdate.setDate(exdate.getDate()+expiredays)
document.cookie=c_name+ "=" +escape(value)+
((expiredays==null) ? "" : ";expires="+exdate.toGMTString())
}
转自:w3school,
唯一的区别就是你的过期时间设置。
function SetCookie(name,value)//两个参数,一个是cookie的名子,一个是值
{
var Days = 30; //此 cookie 将被保存 30 天
var exp = new Date(); //new Date("December 31, 9998");
exp.setTime(exp.getTime() + Days*24*60*60*1000);
document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString();
}
function getCookie(name)//取cookies函数
{
var arr = document.cookie.match(new RegExp("(^| )"+name+"=([^;]*)(;|$)"));
if(arr != null) return unescape(arr[2]); return null;}
function delCookie(name)//删除cookie
{
var exp = new Date();
exp.setTime(exp.getTime() - 1);
var cval=getCookie(name);
if(cval!=null) document.cookie= name + "="+cval+";expires="+exp.toGMTString();
}SetCookie ("xiaoqi", "3")
alert(getCookie('xiaoqi'));
</script>
x.util.Cookie = (function(){
function set(name, value, expires, domain, path, secure){
if(!expires){
expires = new Date();
expires.setTime(new Date().getTime() + 1 * (24 * 60 * 60 * 1000));
}
var s = name + '=' + encodeURIComponent(value) +
';expires=' + expires.toGMTString() +
';path=' + (path ? path : '/');
if(domain)
s += ';domain=' + domain;
if(secure)
s += ';secure';
document.cookie = s;
}
function get(name){
var r = new RegExp('(?:;)?' + name + '=([^;]*);?');
r.test(document.cookie);
return decodeURIComponent(RegExp.$1);
}
function remove(name, domain, path){
var expire = new Date();
expire.setTime(0);
var s = name + '=;expires=Thu, 01-Jan-2010 00:00:01 GMT' +
';path=' + (path ? path : '/');
if(domain)
s += ';domain=' + domain;
console.log(s)
document.cookie = s;
}
return {
set: set,
get: get,
remove: remove
};
})();
设置cookie关键是看上面的set方法。开始搞cookie的时候,我也是经常搞不清楚。因为cookie作为document的一个属性存在,确实有点不友好,操作也麻烦,还要自己拼接字符串,好不容把cookie的字符串拼接好了,最后一查看document.cookie,竟然是空的。操作cookie需要几个注意的地方, 首先需要设置 expires属性, expires的单位是毫秒,1楼的代码中对这个属性的设置应该没有问题。第二是cookie不可以跨域访问,Javascript也是不能跨域的。所有在那个域下设置cookie的,也应该在相同的域下访问。加入web应用的URL是localhost的话,set与get cookie都要在localhost下操作。第三最重要的是path属性,设置cookie与访问cookie的路径应保持相同,比如:
http://localhost:8080/setCookie.htm中是设置cookie的js代码,在这个页面中是不能访问到那个cookie的
http://localhost:8080/cmd/getCookie.htm而在这个页面中可以
http://localhost:8080/getCookie.htm也就是说读cookie与写cookie的页面需要在相同的路径下面。可能还会存在其它的因素导致各位同学操作cookie的失败,但是我跟人的经验觉得,上面几点是经常导致错误的地方。
{
var exp = new Date();
exp.setTime(exp.getTime() - 1);
var cval=getCookie(name);
if(cval!=null) document.cookie= name + "="+cval+";expires="+exp.toGMTString();
}删除cookie不好用