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去掉时光轴头尾部线条的方法实例
Jun 16 jQuery
简单实现jQuery轮播效果
Aug 18 jQuery
认识jQuery的Promise的具体使用方法
Oct 10 jQuery
jquery中done和then的区别(详解)
Dec 19 jQuery
jQuery+Cookie实现切换皮肤功能【附源码下载】
Mar 25 jQuery
jQuery插件Validation表单验证详解
May 26 jQuery
jQuery实现的监听导航滚动置顶状态功能示例
Jul 23 jQuery
jquery实现联想词搜索框和搜索结果分页的示例
Oct 10 jQuery
使用jquery Ajax实现上传附件功能
Oct 23 jQuery
JS/jQuery实现简单的开关灯效果【案例】
Feb 19 jQuery
Vue CLI3.0中使用jQuery和Bootstrap的方法
Feb 28 jQuery
jQuery实现消息弹出框效果
Dec 10 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变量存储的详解
2013/06/13 PHP
[原创]php求圆周率的简单实现方法
2016/05/30 PHP
Javascript浮点数乘积运算出现多位小数的解决方法
2014/02/17 Javascript
jQuery选择器简明总结(含用法实例,一目了然)
2014/04/25 Javascript
js 设置缓存及获取设置的缓存
2014/05/08 Javascript
详解Sea.js中Module.exports和exports的区别
2017/02/12 Javascript
vue.js过滤器+ajax实现事件监听及后台php数据交互实例
2018/05/22 Javascript
vue组件表单数据回显验证及提交的实例代码
2018/08/30 Javascript
详解js location.href和window.open的几种用法和区别
2019/12/02 Javascript
vue2和vue3的v-if与v-for优先级对比学习
2020/10/10 Javascript
解决Antd 里面的select 选择框联动触发的问题
2020/10/24 Javascript
Python pickle模块用法实例
2015/04/14 Python
简单谈谈python基本数据类型
2018/09/26 Python
解决python中os.listdir()函数读取文件夹下文件的乱序和排序问题
2018/10/17 Python
局域网内python socket实现windows与linux间的消息传送
2019/04/19 Python
Python3 实现文件批量重命名示例代码
2019/06/03 Python
python将字符串转换成json的方法小结
2019/07/09 Python
使用Tensorflow实现可视化中间层和卷积层
2020/01/24 Python
Python爬虫使用bs4方法实现数据解析
2020/08/25 Python
python 实现一个图形界面的汇率计算器
2020/11/09 Python
Python系统公网私网流量监控实现流程
2020/11/23 Python
HTML5 placeholder(空白提示)属性介绍
2013/08/07 HTML / CSS
天猫超市:阿里巴巴打造的网上超市
2016/11/02 全球购物
金牌葡萄酒俱乐部:Gold Medal Wine Club
2017/11/02 全球购物
Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?用contains来区分是否有重复的对象。还是都不用
2013/07/30 面试题
vue项目实现分页效果
2021/03/24 Vue.js
护士自我鉴定范文
2013/10/06 职场文书
初中化学教学反思
2014/01/23 职场文书
青年文明号创建承诺
2014/03/31 职场文书
任命书怎么写
2014/06/04 职场文书
旅游活动总结
2014/08/27 职场文书
2014党员整改措施思想汇报
2014/10/07 职场文书
ktv服务员岗位职责
2015/02/09 职场文书
当幸福来敲门观后感
2015/06/01 职场文书
一劳永逸彻底解决pip install慢的办法
2021/05/24 Python
Python之matplotlib绘制饼图
2022/04/13 Python