可兼容IE的获取及设置cookie的jquery.cookie函数方法


Posted in Javascript onSeptember 02, 2013

前言

在开发过程中,因为之前有接触过Discuz,就直接拿其common.js里面的getcookie和setcookie方法来使用,做到后面在使用IE来测试的时候,发现这两个方法子啊IE下不起作用,就请教同事,这样就有了jquery.cookie.js文件的由来,里面的代码很少,我贴在下面,方便以后使用和研究吧。

源码

/** 
* Cookie plugin 
* 
* Copyright (c) 2006 Klaus Hartl (stilbuero.de) 
* Dual licensed under the MIT and GPL licenses: 
* http://www.opensource.org/licenses/mit-license.php 
* http://www.gnu.org/licenses/gpl.html 
* 
*/ /** 
* Create a cookie with the given name and value and other optional parameters. 
* 
* @example $.cookie('the_cookie', 'the_value'); 
* @desc Set the value of a cookie. 
* @example $.cookie('the_cookie', 'the_value', {expires: 7, path: '/', domain: 'jquery.com', secure: true}); 
* @desc Create a cookie with all available options. 
* @example $.cookie('the_cookie', 'the_value'); 
* @desc Create a session cookie. 
* @example $.cookie('the_cookie', null); 
* @desc Delete a cookie by passing null as value. 
* 
* @param String name The name of the cookie. 
* @param String value The value of the cookie. 
* @param Object options An object literal containing key/value pairs to provide optional cookie attributes. 
* @option Number|Date expires Either an integer specifying the expiration date from now on in days or a Date object. 
* If a negative value is specified (e.g. a date in the past), the cookie will be deleted. 
* If set to null or omitted, the cookie will be a session cookie and will not be retained 
* when the the browser exits. 
* @option String path The value of the path atribute of the cookie (default: path of page that created the cookie). 
* @option String domain The value of the domain attribute of the cookie (default: domain of page that created the cookie). 
* @option Boolean secure If true, the secure attribute of the cookie will be set and the cookie transmission will 
* require a secure protocol (like HTTPS). 
* @type undefined 
* 
* @name $.cookie 
* @cat Plugins/Cookie 
* @author Klaus Hartl/klaus.hartl@stilbuero.de 
*/ 
/** 
* Get the value of a cookie with the given name. 
* 
* @example $.cookie('the_cookie'); 
* @desc Get the value of a cookie. 
* 
* @param String name The name of the cookie. 
* @return The value of the cookie. 
* @type String 
* 
* @name $.cookie 
* @cat Plugins/Cookie 
* @author Klaus Hartl/klaus.hartl@stilbuero.de 
*/ 
jQuery.cookie = function(name, value, options) { 
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(); 
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(''); 
} 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; 
} 
};
Javascript 相关文章推荐
js动态创建表格,删除行列的小例子
Jul 20 Javascript
javascript学习笔记(三)BOM和DOM详解
Sep 30 Javascript
jQuery中is()方法用法实例
Jan 06 Javascript
JavaScript学习笔记之数组随机排序
Mar 23 Javascript
js代码实现下拉菜单【推荐】
Dec 15 Javascript
js的OOP继承实现(必看篇)
Feb 18 Javascript
BootStrap 页签切换失效的解决方法
Aug 17 Javascript
Vue组件之全局组件与局部组件的使用详解
Oct 09 Javascript
React中this丢失的四种解决方法
Mar 12 Javascript
js 将线性数据转为树形的示例代码
May 28 Javascript
Vue中keep-alive组件作用详解
Feb 04 Javascript
vue实现tab栏点击高亮效果
Aug 19 Javascript
基于MVC3方式实现下拉列表联动(JQuery)
Sep 02 #Javascript
javascript模块化是什么及其优缺点介绍
Sep 02 #Javascript
火狐下table中创建form导致两个table之间出现空白
Sep 02 #Javascript
js的alert弹出框出现乱码解决方案
Sep 02 #Javascript
javascript中的window.location.search方法简介
Sep 02 #Javascript
js Math 对象的方法
Sep 01 #Javascript
javascript ready和load事件的区别示例介绍
Aug 30 #Javascript
You might like
新版PHP极大的增强功能和性能
2006/10/09 PHP
如何提高MYSQL数据库的查询统计速度 select 索引应用
2007/04/11 PHP
PHP的魔术常量__METHOD__简介
2014/07/08 PHP
php实现RSA加密类实例
2015/03/26 PHP
获取DOM对象的几种扩展及简写
2006/10/09 Javascript
javascript中的对象创建 实例附注释
2011/02/08 Javascript
NodeJS与Mysql的交互示例代码
2013/08/18 NodeJs
JS中实现replaceAll的方法(实例代码)
2013/11/12 Javascript
js 数值转换为3位逗号分隔的示例代码
2014/02/19 Javascript
深入浅出理解javaScript原型链
2015/05/09 Javascript
jQuery实现的导航动画效果(附demo源码)
2016/04/01 Javascript
JS加载器如何动态加载外部js文件
2016/05/26 Javascript
深入理解JS继承和原型链的问题
2016/12/17 Javascript
JavaScript实现审核流程状态的动态显示进度条
2017/03/15 Javascript
详解AngularJs ui-router 路由的简单介绍
2017/04/26 Javascript
Angular 4依赖注入学习教程之简介(一)
2017/06/04 Javascript
Angular4 中常用的指令入门总结
2017/06/12 Javascript
初探JavaScript 面向对象(推荐)
2017/09/03 Javascript
js 两个日期比较相差多少天的实例
2017/10/19 Javascript
vue自定义指令directive实例详解
2018/01/17 Javascript
[01:21]辉夜杯战队访谈宣传片—CDEC
2015/12/25 DOTA
[50:28]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 Newbee vs KG
2018/04/01 DOTA
[44:10]2018DOTA2亚洲邀请赛 4.5 淘汰赛 EG vs VP 第一场
2018/04/06 DOTA
Python模仿POST提交HTTP数据及使用Cookie值的方法
2014/11/10 Python
Python线程创建和终止实例代码
2018/01/20 Python
python3之模块psutil系统性能信息使用
2018/05/30 Python
CSS3实现滚动条动画效果代码分享
2016/08/03 HTML / CSS
JBL澳大利亚官方商店:扬声器、耳机和音响系统
2018/05/24 全球购物
巴西独家产品和现场演示购物网站:Shoptime
2019/07/11 全球购物
人事行政专员岗位职责
2014/07/23 职场文书
民主评议党员登记表自我评价
2014/10/20 职场文书
道路交通事故人身损害赔偿协议书
2014/11/19 职场文书
2014矛盾纠纷排查调处工作总结
2014/12/09 职场文书
工作简历的自我评价
2019/05/16 职场文书
如何设置多台电脑共享打印机?多台电脑共享打印机的方法
2022/04/08 数码科技
MySQL创建管理子分区
2022/04/13 MySQL