1、index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Cookies</title>
<script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js" type="text/javascript" charset="utf-8"></script>
<script src="https://cdn.bootcss.com/jquery-cookie/1.4.1/jquery.cookie.min.js" type="text/javascript" charset="utf-8"></script>
<script src="./js/jquery.base64.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript">
$(function(){
//读取
$('#user').val($.cookie('user'));
//解密
if($.cookie('pass')){
pass = $.base64.decode($.cookie('pass'));
$('#pass').val(pass);
}
//提交新建
$(".sub").click(function(){
if($('#check').is(':checked')){
$.cookie("user", $('#user').val(), { expires: 7 });
//加密
var pass = $('#pass').val();
pass = $.base64.encode(pass);
$.cookie("pass", pass, { expires: 7 });
}else{
//删除
$.cookie("user", '', { expires: -1 });
$.cookie("pass", '', { expires: -1 });
}
});
//删除
$('.clearCookie').click(function(){
$.cookie("user", '', { expires: -1 });
$.cookie("pass", '', { expires: -1 });
});
//持续时间
$.cookie('myCookie1', '我是7天的Cookie', { expires: 7 });
var time = new Date();
time.setTime(time.getTime() + (60*60*1000));
$.cookie('myCookie2', '我是1小时的Cookie', { expires: time });
//存储路径,方便其他页面获取该cookie
$.cookie('myCookie3', '我是存储在根目录的Cookie', { expires: 7, path: '/' });
})
</script>
</head>
<body>
<form>
<h3>登录</h3>
<div>
用户名: <input type="text" name="" id="user" value="" placeholder="用户名" />
</div>
<div>
密码: <input type="password" name="" id="pass" value="" placeholder="密码" />
</div>
<div class="check">
<input type="checkbox" name="" id="check" value="" />
<label for="check">记住密码?</label>
</div>
<input type="button" class="sub" value="登录"/>
</form>
<button class="clearCookie">清空缓存</button>
</body>
</html>
2、js/jquery.base64.js
;(function($) {
var b64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",
a256 = '',
r64 = [256],
r256 = [256],
i = 0;
var UTF8 = {
encode: function(strUni) {
var strUtf = strUni.replace(/[\u0080-\u07ff]/g,
function(c) {
var cc = c.charCodeAt(0);
return String.fromCharCode(0xc0 | cc >> 6, 0x80 | cc & 0x3f);
})
.replace(/[\u0800-\uffff]/g,
function(c) {
var cc = c.charCodeAt(0);
return String.fromCharCode(0xe0 | cc >> 12, 0x80 | cc >> 6 & 0x3F, 0x80 | cc & 0x3f);
});
return strUtf;
},
decode: function(strUtf) {
var strUni = strUtf.replace(/[\u00e0-\u00ef][\u0080-\u00bf][\u0080-\u00bf]/g,
function(c) {
var cc = ((c.charCodeAt(0) & 0x0f) << 12) | ((c.charCodeAt(1) & 0x3f) << 6) | (c.charCodeAt(2) & 0x3f);
return String.fromCharCode(cc);
})
.replace(/[\u00c0-\u00df][\u0080-\u00bf]/g,
function(c) {
var cc = (c.charCodeAt(0) & 0x1f) << 6 | c.charCodeAt(1) & 0x3f;
return String.fromCharCode(cc);
});
return strUni;
}
};
while(i < 256) {
var c = String.fromCharCode(i);
a256 += c;
r256[i] = i;
r64[i] = b64.indexOf(c);
++i;
}
function code(s, discard, alpha, beta, w1, w2) {
s = String(s);
var buffer = 0,
i = 0,
length = s.length,
result = '',
bitsInBuffer = 0;
while(i < length) {
var c = s.charCodeAt(i);
c = c < 256 ? alpha[c] : -1;
buffer = (buffer << w1) + c;
bitsInBuffer += w1;
while(bitsInBuffer >= w2) {
bitsInBuffer -= w2;
var tmp = buffer >> bitsInBuffer;
result += beta.charAt(tmp);
buffer ^= tmp << bitsInBuffer;
}
++i;
}
if(!discard && bitsInBuffer > 0) result += beta.charAt(buffer << (w2 - bitsInBuffer));
return result;
}
var Plugin = $.base64 = function(dir, input, encode) {
return input ? Plugin[dir](input, encode) : dir ? null : this;
};
Plugin.btoa = Plugin.encode = function(plain, utf8encode) {
plain = Plugin.raw === false || Plugin.utf8encode || utf8encode ? UTF8.encode(plain) : plain;
plain = code(plain, false, r256, b64, 8, 6);
return plain + '===='.slice((plain.length % 4) || 4);
};
Plugin.atob = Plugin.decode = function(coded, utf8decode) {
coded = coded.replace(/[^A-Za-z0-9\+\/\=]/g, "");
coded = String(coded).split('=');
var i = coded.length;
do {--i;
coded[i] = code(coded[i], true, r64, a256, 6, 8);
} while (i > 0);
coded = coded.join('');
return Plugin.raw === false || Plugin.utf8decode || utf8decode ? UTF8.decode(coded) : coded;
};
}(jQuery));