用js讀、寫、刪除Cookie代碼續篇,cookie續篇

來源:互聯網
上載者:User

用js讀、寫、刪除Cookie代碼續篇,cookie續篇

上次的一篇文章:用js讀、寫、刪除Cookie代碼分享及詳細注釋說明,在實踐中發現了一些問題:

1.cookie在本地檔案上只能在Firefox上調試,IE和chrome無效

2.cookie沒有設定為永不到期,只考慮了設定一個時間段就到期,顯然不太合理。

這次給出的是比較合理的cookie作業碼:

複製代碼 代碼如下:
var Cookie = {
    get: function (k) {
        return ((new RegExp(["(?:; )?", k, "=([^;]*);?"].join(""))).test(document.cookie) && RegExp["$1"]) || "";
    },
    set: function (k, v, e, d) {
        var date=new Date();
        var expiresDays=e;
        date.setTime(date.getTime()+expiresDays*24*3600*1000);
        //如果有設定時間,則在規定時間內使用cookie,否則就是永不到期
        document.cookie=k+"="+v+"; expires="+ (e != '' ? date.toGMTString(): "GMT_String")+";path=/;domain="+ (d||'');
    },
    del: function (k) {
        var date=new Date();
        //將date設定為過去的時間
        date.setTime(date.getTime()-10000);
        document.cookie=k+"=; expires="+date.toGMTString();
    }
};

例子示範的是:點擊文字展開內容,再次點擊隱藏。當內容為隱藏時,下次開啟還是隱藏的,當內容為顯示時,下次開啟還是顯示。

複製代碼 代碼如下:
<div class="tab">
 <h3 class="tab-header">收縮</h3>
 <div class="tab-con" id="tabCon">
  <p>展開之後可見這裡的內容</p>
 </div>
</div>
var btn = document.getElementsByTagName('h3')[0];
btn.addEventListener('click',function(){
 var isClose = this.getAttribute('data-isClose');
 if(isClose == 'close'){
  show();
  Cookie.del('flag');
 }else{
  hide();
  Cookie.set('flag','hide');
 }
});
var tabCon = document.getElementById('tabCon');
function show(){
 tabCon.style.display = 'block';
 btn.setAttribute('data-isClose','open');
 btn.innerHTML = '收縮';
}
function hide(){
 tabCon.style.display = 'none';
 btn.setAttribute('data-isClose','close');
 btn.innerHTML = '展開';
}
var flag = Cookie.get('flag');
if(flag == 'hide'){
 hide();
}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.