[js] cookie
#cookie必须经过URL编码
#getCookie
function getCookie(name) { var cookieName = encodeURIComponent(name) + "=", cookieStart = document.cookie.indexOf(cookieName), cookieValue = null, cookieEnd; if (cookieStart > -1) { cookieEnd = document.cookie.indexOf(";", cookieStart); //如果是最后一个 if (cookieEnd == -1) { cookieEnd = document.cookie.length; } cookieValue = decodeURIComponent(document.cookie.substring(cookieStart + cookieName.length, cookieEnd)); } return cookieValue; }
#setCookie
function setCookie(name, value, expires, path, domain, secure) { var cookieText = encodeURIComponent(name) + "=" + encodeURIComponent(value); if (expires instanceof Date) { cookieText += "; expires=" + expires.toUTCString(); //unix时间 } if (path) { cookieText += "; path=" + path; } if (domain) { cookieText += "; domain=" + domain; } if (secure) { cookieText += "; secure"; } document.cookie = cookieText; }
#unsetCookie
function unsetCookie(name, path, domain, secure) { setCookie(name, "", new Date(0), path, domain, secure); //过期失效 }
#
//in server window.addEventListener('load', function() { document.getElementById("name-value").innerHTML = getCookie("name"); document.getElementById("book-value").innerHTML = getCookie("book"); document.getElementById("delete-btn").addEventListener('click', function() { unsetCookie("name"); unsetCookie("book"); }) setCookie("name", "Nicholas"); setCookie("book", "Professional JavaScript"); })
#SubCookie
function getAllSubCookie(name) { var cookieName = encodeURIComponent(name) + "=", cookieStart = document.cookie.indexOf(cookieName), cookieValue = null, cookieEnd, subCookies, i, parts, result = {}; if (cookieStart > -1) { cookieEnd = document.cookie.indexOf(";", cookieStart) if (cookieEnd == -1) { cookieEnd = document.cookie.length; } cookieValue = document.cookie.substring(cookieStart + cookieName.length, cookieEnd); if (cookieValue.length > 0) { subCookies = cookieValue.split("&"); for (i = 0, len = subCookies.length; i < len; i++) { parts = subCookies[i].split("="); result[decodeURIComponent(parts[0])] = decodeURIComponent(parts[1]); } return result; } } return null; } function getSubCookie(name, subName) { var subCookies = getAllSubCookie(name); if (subCookies) { return subCookies[subName]; } else { return null; } } function setAllSubCookie(name, subcookies, expires, path, domain, secure) { var cookieText = encodeURIComponent(name) + "=", subcookieParts = new Array(), subName; for (subName in subcookies) { if (subName.length > 0 && subcookies.hasOwnProperty(subName)) { subcookieParts.push(encodeURIComponent(subName) + "=" + encodeURIComponent(subcookies[subName])); } } if (subcookieParts.length > 0) { cookieText += subcookieParts.join("&"); if (expires instanceof Date) { cookieText += "; expires=" + expires.toUTCString(); } if (path) { cookieText += "; path=" + path; } if (domain) { cookieText += "; domain=" + domain; } if (secure) { cookieText += "; secure"; } } else { cookieText += "; expires=" + (new Date(0)).toUTCString(); } document.cookie = cookieText; } function setSubCookie(name, subName, value, expires, path, domain, secure) { var subcookies = getAllSubCookie(name) || {}; subcookies[subName] = value; setAllSubCookie(name, subcookies, expires, path, domain, secure); } function unsetSubCookie(name, subName, path, domain, secure) { var subcookies = getAllSubCookie(name); if (subcookies) { delete subcookies[subName]; setAllSubCookie(name, subcookies, null, path, domain, secure); } } function unsetAllSubCookie(name, path, domain, secure) { setAllSubCookie(name, null, new Date(0), path, domain, secure); }
#
window.addEventListener('load', function() { document.getElementById("name-value").innerHTML = getSubCookie("data", "name"); document.getElementById("book-value").innerHTML = getSubCookie("data", "book"); document.getElementById("delete-btn").addEventListener('click', function() { unsetSubCookie("data", "name"); unsetSubCookie("data", "book"); }) setSubCookie("data", "name", "Nicholas"); setSubCookie("data", "book", "Professional JavaScript"); console.log(document.cookie); })
 function getCookie(name) {
        var result = null;
        var myCookie = document.cookie + ";";
        var searchName = name + "=";
        var startOfCookie = myCookie.indexOf(searchName);
        var endOfCookie;
        if (startOfCookie != -1) {
            startOfCookie += searchName.length;
            endOfCookie = myCookie.indexOf(";", startOfCookie);
            result = (myCookie.substring(startOfCookie, endOfCookie));
        }
        return result;
    }
function setCookie(name, value, Hours) {
    var d = new Date();
    var offset = 8;
    var utc = d.getTime() + (d.getTimezoneOffset() * 60000);
    var nd = utc + (3600000 * offset);
    var exp = new Date(nd);
    exp.setTime(exp.getTime() + Hours * 60 * 60 * 1000);
    document.cookie = name + "=" + escape(value) + ";path=/;expires=" + exp.toGMTString() + ";domain=360doc.com;"
}
function getCookie(name) {
    var arr = document.cookie.match(new RegExp("(^| )" + name + "=([^;]*)(;|$)"));
    if (arr != null) return unescape(arr[2]);
    return null
}
                    
                
                
            
        
浙公网安备 33010602011771号