返回舊版| 微信建站| 我要建站 | 建站學習 | 加入收藏
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
辽宁十一选五一定牛图表