返回旧版| 微信建站| 我要建站 | 建站学习 | 加入收藏
JavaScript教程当前位置:首页 > HTML教程 > JavaScript教程 > 正文

JS 无法清除Cookie的解决方法

发布时间:2020-03-21 21:27:58   来源:   点击:
从网上下载的一个封装操作cookie的js,使用了好久,最后发现二级目录下无法删除cookie,源代码如下:
  1. var phpcms_path = '/'
  2. var cookie_pre = 'hqc'
  3. var cookie_domain = ''
  4. var cookie_path = '/'
  5. function getcookie(name) { 
  6.     name = cookie_pre+name; 
  7.     var arg = name + "="
  8.     var alen = arg.length; 
  9.     var clen = document.cookie.length; 
  10.     var i = 0; 
  11.     while(i < clen) { 
  12.         var j = i + alen; 
  13.         if(document.cookie.substring(i, j) == arg) return getcookieval(j); 
  14.         i = document.cookie.indexOf(" ", i) + 1; 
  15.         if(i == 0) break
  16.     } 
  17.     return null
  18.  
  19. function setcookie(name, value, days) { 
  20.     name = cookie_pre+name; 
  21.     var argc = setcookie.arguments.length; 
  22.     var argv = setcookie.arguments; 
  23.     var secure = (argc > 5) ? argv[5] : false
  24.     var expire = new Date(); 
  25.     if(days==null || days==0) days=1; 
  26.     expire.setTime(expire.getTime() + 3600000*24*days); 
  27.     document.cookie = name + "=" + escape(value) + ("; path=" + cookie_path) + ((cookie_domain == '') ? "" : ("; domain=" + cookie_domain)) + ((secure == true) ? "; secure" : "") + ";expires="+expire.toGMTString(); 
  28.  
  29. function delcookie(name) { 
  30.     var exp = new Date(); 
  31.     exp.setTime (exp.getTime() - 1); 
  32.     var cval = getcookie(name); 
  33.     name = cookie_pre+name; 
  34.     document.cookie = name+"="+cval+";expires="+exp.toGMTString()
  35.  
  36. function getcookieval(offset) { 
  37.     var endstr = document.cookie.indexOf (";", offset); 
  38.     if(endstr == -1) 
  39.     endstr = document.cookie.length; 
  40.     return unescape(document.cookie.substring(offset, endstr)); 

其中的delcookie在二级目录下无法删除cookie,主要原因是cookie也有作用域问题,需要加上对应的域名或者目录
所以delcookie修改方式改为:
  1. function delcookie(name) { 
  2.     var exp = new Date(); 
  3.     exp.setTime (exp.getTime() - 1); 
  4.     var cval = getcookie(name); 
  5.     name = cookie_pre+name; 
  6.     document.cookie = name+"="+cval+";expires="+exp.toGMTString()+"; path=/";; 


版权所有:郑州腾石网络科技有限公司 备案信息:豫ICP备18019117号
站长QQ:2863868475 业务合作咨询:15137100750(同微信)
本站所有投放的广告是有其他网站提供,不代表本站立场,同时网站首页广告位对外出租详情咨询本站站长!同时欢迎广大站长加入个人建站团队
  • 建站客服
  • CMS仿站
  • CMS学习
  • 技术交流群:336572814