【连载】实用小demo连载 2 —— Cookie 记录和获取 demo 2015-08-05 13:48 3人阅读 评论(0) 收藏
小demo连载系列2
这次讲述用jQuery的Cookie库函数,记录和获取cookie的过程
用实例带大家迅速上手学会cookie的使用
demo下载地址(所有连载的demo都是免费):
http://download.csdn.net/detail/snow_finland/8961861
具体代码(由于写demo的时候,写了非常完备的代码注释,这里就不做赘述了):
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html" charset="utf-8" />
<meta name="viewport" content="initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<title>Cookie Demo</title>
</head>
<body>
<label for="J_input_name">请输入名字</label>
<input type="text" value="" id="J_input_name" />
<a href="javascript:;" id="J_submit">提交</a>
<script type="text/javascript" src="http://libs.baidu.com/jquery/1.9.0/jquery.min.js"></script>
<script type="text/javascript">
/*
* Cookie Demo v 1.0.0
* 2015-08-05 Edit by Jane
* jQuery.cookie jQuery的cookie封装函数
* name cookie的名字
* value cookie的值
* options 是个object,可填的值有expires,过期时间;path,路径;domain,作用域;secure
*/
jQuery.cookie = function(name, value, options) {
// 如果填写了name和value字段,那么是设置cookie
if (typeof value != 'undefined') { // name and value given, set cookie
options = options || {};
if (value === null) {
value = '';
options.expires = -1;
}
var expires = '';
if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) {
var date;
if (typeof options.expires == 'number') {
date = new Date();
// 这里的最小时间单位是1天(24 * 60 * 60 * 1000),如果需要几个小时,几分钟,需要调整这里的参数
date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000));
} else {
date = options.expires;
}
expires = '; expires=' + date.toUTCString(); // use expires attribute, max-age is not supported by IE
}
var path = options.path ? '; path=' + options.path : '';
var domain = options.domain ? '; domain=' + options.domain : '';
var secure = options.secure ? '; secure' : '';
document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join('');
// 如果只填写了name字段,那么是获取cookie
} else { // only name given, get cookie
var cookieValue = null;
if (document.cookie && document.cookie != '') {
var cookies = document.cookie.split(';');
for (var i = 0; i < cookies.length; i++) {
var cookie = jQuery.trim(cookies[i]);
// Does this cookie string begin with the name we want?
if (cookie.substring(0, name.length + 1) == (name + '=')) {
cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
break;
}
}
}
return cookieValue;
}
};
$(document).ready(function(){
// 取出cookie中name的值,只填写name字段代表取出cookie的值
var name = $.cookie('name');
// 如果是真实存在的值,那么把它预填到名字输入框
if( name != null && name != undefined && name != 'undefined'){
$('#J_input_name').val(name);
}
$('#J_submit').click(function(){
var tmp_name = $.trim($('#J_input_name').val());
$.ajax({
type: 'POST',
url: 'save.php',
data: {name:tmp_name},
dataType: "json",
success:function(data){
alert('欢迎,'+tmp_name);
// 提交成功后,把name保存到cookie中,保存时间为1年365天,保存在根目录(path:'/'),有value字段值代表存cookie
$.cookie('name',tmp_name,{expires:365,path:'/'});
},
error:function(){
alert('提交失败');
}
});
});
});
</script>
</body>
</html>
其中save.php只是一个接口,为了能请求的到,这里demo给个save.php
<?php echo 1; ?>
cookie保存之后,在浏览器的cookie里面可以查看到
版权声明:本文为博主原创文章,未经博主允许不得转载。
浙公网安备 33010602011771号