QQ咨询 官方微信

添加微信好友

官方小程序

百度小程序

微信小程序

头条小程序

关于我们

js教程

JS 无法清除Cookie的解决方法

 admin  2020-03-21 21:31:00
从网上下载的一个封装操作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=/";; 


¥ 打赏
×
如果您觉得文章帮助了您就打赏一下吧
非常感谢你的打赏,我们将继续分享更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫打赏

微信扫一扫打赏

本文《JS 无法清除Cookie的解决方法》发布于石头博客文章,作者:admin,如若转载,请注明出处:https://www.pweb123.com/html/JavaScript/800.html,否则禁止转载,谢谢配合!

文章点评

我来说两句 已有0条评论
点击图片更换

添加微信好友

添加微信好友

微信小程序

百度小程序