用js控制cookie(cookie操作類)

efy6 9年前發布 | 1K 次閱讀 JavaScript

function cookie(name, value, expires, path, domain, secure) {
    // 初始化
    this.name = name;
    this.value = value;
    this.expires = expires;
    this.path = path;
    this.domain = domain;
    this.secure = secure;

// 讀取cookie
this.read = function () {
    // 快捷操作
    var ck = document.cookie;

    var arg = this.name + "=";
    var alen = arg.length;
    var clen = ck.length;
    var i = 0;
    while (i < clen) {
        var j = i + alen;
        if (ck.substring(i, j) == arg) {
            var endstr = ck.indexOf(";", j);
            if (endstr == -1)
                endstr = ck.length;
            return unescape(ck.substring(j, endstr));
        }
        i = ck.indexOf(" ", i) + 1;
        if (i == 0)
            break;
    }
    return null;
}

// 設置cookie
this.set = function () {
    // 更新cookie過期時間
    expStore = this.expires;

    exp = new Date();
    base = new Date(0);
    skew = base.getTime();
    if (skew > 0)
        exp.setTime(exp.getTime() - skew);
    exp.setTime(exp.getTime() + (this.expires * 24 * 60 * 60 * 1000));
    this.expires = exp;

    document.cookie = this.name + "=" + escape(this.value) +
        ((this.expires) ? "; expires=" + this.expires.toGMTString() : "") +
        ((this.path) ? "; path=" + this.path : "") +
        ((this.domain) ? "; domain=" + this.domain : "") +
        ((this.secure) ? "; secure" : "");

    // 刷新cookie類中的cookie過期時間
    this.expires = expStore;
}

// 刪除cookie
this.kill = function () {
    document.cookie = this.name + "=" +
        ((this.path) ? "; path=" + this.path : "") +
        ((this.domain) ? "; domain=" + this.domain : "") +
        "; expires=Thu, 01-Jan-70 00:00:01 GMT";
}

// 更改cookie類中的cookie屬性
this.changeName = function (chName) {
    this.kill();
    this.name = chName;
    this.set();
}
this.changeVal = function (chVal) {
    this.kill();
    this.value = chVal;
    this.set();
}
this.changeExp = function (chExp) {
    this.kill();
    this.expires = chExp;
    this.set();
}
this.changePath = function (chPath) {
    this.kill();
    this.path = chPath;
    this.set();
}
this.changeDomain = function (chDom) {
    this.kill();
    this.domain = chDom;
    this.set();
}
this.changeSecurity = function (chSec) {
    this.kill();
    this.secure = chSec;
    this.set();
}

} </pre>

 本文由用戶 efy6 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!