【连载】实用小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里面可以查看到
版权声明:本文为博主原创文章,未经博主允许不得转载。