Jquery cookie插件实现原理代码解析


Posted in jQuery onAugust 04, 2020

Cookie 是由 Web 服务器保存在用户浏览器上的小文本文件,它包含有关用户的本地终端上的数据。

jQuery提供了一个十分简单的插件(名称也是Cookie)来管理网站的Cookie。

下载地址:http://github.com/carhartl/jquery-cookie

例子: 当在用户名字段填写用户名后,单击下面的“记住用户名”复选框后,再次打开这个页面,发现用户名字段上已经被自动赋值(之前所填写的用户名)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script src="../../scripts/jquery.js" type="text/javascript"></script>
<script src="js/jquery.cookie.js" type="text/javascript"></script>
<script type="text/javascript">
  $(function() {
  	var COOKIE_NAME = 'username';
  	if( $.cookie(COOKIE_NAME) ){
  		$("#username").val( $.cookie(COOKIE_NAME) );
  	}
  	$("#check").click(function(){
  		if(this.checked){
  			$.cookie(COOKIE_NAME, $("#username").val() , { path: '/', expires: 10 });
  		}else{
  			$.cookie(COOKIE_NAME, null, { path: '/' });
  		}
  	});
  
  });

</script>
</head>
<body>
  用户名:<input type="text" name="username" id="username" /> <br/>
  <input type="checkbox" name="check" id="check"/>记住用户名
</body>
</html>

Jquery cookie插件实现原理代码解析

调试:

使用chrome调试,发现无法实现效果

尝试获取cookie文件也失效

Jquery cookie插件实现原理代码解析

原因:

chrome不支持js在本地操作cookie。据测试,除了chrome浏览器外,其他主流浏览器(ie、firefox等)都支持js在本地操作cookie。当然部署到服务器上所有浏览器都是支持的。

扩展:

操作cookie失效还有一个原因:浏览器设置成不支持Cookie。

可以通过以下代码测试浏览器是否支持Cookie或者Cookie是否被禁用?

var dt = new Date(); 
dt.setSeconds(dt.getSeconds() + 60); 
document.cookie = "cookietest=1; expires=" + dt.toGMTString(); 
var cookiesEnabled = document.cookie.indexOf("cookietest=") != -1; 
if(!cookiesEnabled) { 
	//没有启用cookie 
	alert("没有启用cookie ");
} else{
	//已经启用cookie 
	alert("已经启用cookie ");
}

经测试,chrome的确没有启用Cookie,因此上述例子达不到效果

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

jQuery 相关文章推荐
jquery实现图片平滑滚动详解
Mar 22 jQuery
jquery中封装函数传递当前元素的方法示例
May 05 jQuery
jQuery开源组件BootstrapValidator使用详解
Jun 29 jQuery
自定义类似于jQuery UI Selectable 的Vue指令v-selectable
Aug 23 jQuery
基于jQuery解决ios10以上版本缩放问题
Nov 03 jQuery
jQuery实现的回车触发按钮事件功能示例
Mar 25 jQuery
vue+jquery+lodash实现滑动时顶部悬浮固定效果
Apr 28 jQuery
jQuery中将json数据显示到页面表格的方法
May 27 jQuery
jquery获取select选中值的文本,并赋值给另一个输入框的方法
Aug 21 jQuery
jQuery删除/清空指定元素的所有子节点实例代码
Jul 04 jQuery
jQuery操作事件完整实例分析
Jan 10 jQuery
jQuery 淡入/淡出效果函数用法分析
May 19 jQuery
jQuery实现雪花飘落效果
Aug 02 #jQuery
jQuery实现滑动开关效果
Aug 02 #jQuery
jQuery实现开关灯效果
Aug 02 #jQuery
jquery轮播图插件使用方法详解
Jul 31 #jQuery
jQuery带控制按钮轮播图插件
Jul 31 #jQuery
jquery实现简单自动轮播图效果
Jul 29 #jQuery
jQuery+ThinkPHP实现图片上传
Jul 23 #jQuery
You might like
php按单词截取字符串的方法
2015/04/07 PHP
php+ajax实现的点击浏览量加1
2015/04/16 PHP
php实现zip文件解压操作
2015/11/03 PHP
Yii控制器中操作视图js的方法
2016/07/04 PHP
JS实现self的resend
2010/07/22 Javascript
url参数中有+、空格、=、%、&amp;、#等特殊符号的问题解决
2013/05/15 Javascript
javascript相等运算符与等同运算符详细介绍
2013/11/09 Javascript
javascript 模拟坦克大战游戏(html5版)附源码下载
2014/04/08 Javascript
jQuery固定浮动侧边栏实现思路及代码
2014/09/28 Javascript
jQuery中ajax的load()方法用法实例
2014/12/26 Javascript
jQuery知识点整理
2015/01/30 Javascript
js代码验证手机号码和电话号码是否合法
2015/07/30 Javascript
JavaScript代码性能优化总结(推荐)
2016/05/16 Javascript
jQuery中deferred对象使用方法详解
2016/07/14 Javascript
Angular-Ui-Router+ocLazyLoad动态加载脚本示例
2017/03/02 Javascript
jQuery动态添加.active 实现导航效果代码思路详解
2017/08/29 jQuery
js装饰设计模式学习心得
2018/02/17 Javascript
详解es6超好用的语法糖Decorator
2018/08/01 Javascript
element-ui表格列金额显示两位小数的方法
2018/08/24 Javascript
如何为vue的项目添加单元测试
2018/12/19 Javascript
JavaScript数组、json对象、eval()函数用法实例分析
2019/02/21 Javascript
vue webpack build资源相对路径的问题及解决方法
2020/06/04 Javascript
JS如何判断对象是否包含某个属性
2020/08/29 Javascript
Vue select 绑定动态变量的实例讲解
2020/10/22 Javascript
Python对象转JSON字符串的方法
2016/04/27 Python
python发送邮件脚本
2018/05/22 Python
Ubuntu下Python2与Python3的共存问题
2018/10/31 Python
Pycharm最新激活码2019(推荐)
2019/12/31 Python
Expedia泰国:预订机票、酒店和旅游包(航班+酒店)
2016/09/27 全球购物
医学生个人求职信范文
2014/02/07 职场文书
旅游安全协议书
2014/04/21 职场文书
软环境建设心得体会
2014/09/09 职场文书
2016年社区文体活动总结
2016/04/06 职场文书
JavaScript实现班级抽签小程序
2021/05/19 Javascript
vue实现拖拽交换位置
2022/04/07 Vue.js
python计算列表元素与乘积详情
2022/08/05 Python