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

前言

在开发过程中,因为之前有接触过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;
}
};

(0)

相关推荐

  • Jquery操作cookie记住用户名

    一.jquery.cookie.js介绍 jquery.cookie.js是一个基于jquery的插件,一个轻量级的cookie 插件,可以读取.写入.删除 cookie. jquery.cookie.js可以从Github上面获得源码 https://github.com/carhartl/jquery-cookie 二.jquery.cookie.js的基本用法介绍 jQuery操作cookie的插件,大概的使用方法如下: 1. 读取Cookie值 $.cookie('the_cookie'

  • jQuery操作cookie方法实例教程

    本文实例讲述了jQuery操作cookie的方法.分享给大家供大家参考.具体方法如下: 先来看看jq.cookie的aip 写入cookie 复制代码 代码如下: $.cookie("this-cookie","this-value",{     expires:10,//有效日期     path:"/",//cookie的路 径     domanin:    //cookie的域名     secure:true //true,cookie

  • jquery.cookie实现的客户端购物车操作实例

    本文实例讲述了jquery.cookie实现的客户端购物车操作.分享给大家供大家参考,具体如下: //购物车 var Cart = function () { this.Count = 0; this.Total = 0; this.Items = new Array(); }; //购物车集合对象 var CartItem = function () { this.Id = 0; this.Name = ""; this.Count = 0; this.Price = 0; }; /

  • jquery.cookie() 方法的使用(读取、写入、删除)

    一个轻量级的cookie 插件,可以读取.写入.删除 cookie. jquery.cookie.js 的配置 首先包含jQuery的库文件,在后面包含 jquery.cookie.js 的库文件. <script type="text/javascript" src="js/jquery-1.6.2.min.js"></script> <script type="text/javascript" src="

  • jquery中cookie用法实例详解(获取,存储,删除等)

    本文实例讲述了jquery中cookie用法.分享给大家供大家参考,具体如下: cookie在jquery中有指定的cookie操作类,下面我先来介绍我们在使用cookie操作类时的一些问题,然后介绍正确的使用方法. 使用JQuery操作cookie时 发生取的值不正确的问题: 结果发现cookie有四个不同的属性: 名称,内容,域,路径 $.cookie('the_cookie'); // 读取 cookie $.cookie('the_cookie', 'the_value'); // 存储

  • jquery.cookie.js用法实例详解

    本文实例讲述了jquery.cookie.js用法.分享给大家供大家参考,具体如下: 对cookies的操作在当访问一个网站就无时无刻的都伴随着我们,记录着我们的一举一动,并将不危害用户隐私的信息,将以保存,这样用户就不用去从新再次操作重复的步骤,这样大大方便了客户,也增加了客户对网站的回头率. jquery.cookie.js 提供了jquery中非常简单的操作cookie的方法. $.cookie('the_cookie'); // 获得cookie $.cookie('the_cookie

  • 详解jQuery的Cookie插件

    一.jQuery.Cookie.js插件是一个轻量级的Cookie管理插件. 特别提醒,今日发现一个特别的错误,google浏览器提示:has no method $.cookie.火狐浏览器提示:$.cookie is not a function;调试了半天,终于找到原因,如果同一个页面两次或者多次引入jQuery插件就会报此错误. 使用方法: 1.引入jQuery与jQuery.Cookie.js插件. <script src="jQuery.1.8.3.js" type=

  • jQuery的cookie插件实现保存用户登陆信息

    复制代码 代码如下: <!DOCTYPE html> <html> <head> <title>cookies.html</title> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="this i

  • jQuery通过写入cookie实现更换网页背景的方法

    本文实例讲述了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"

  • jquery 删除cookie失效的解决方法

    最近做一个功能, 但是删除cookie的时候总是失效, 搞不清楚什么原因. 使用$.cookie("name","");  结果出来是生成了一个新的空值的cookie. 使用$.cookie("name",null); 又删除不掉cookie. 最后使用$.cookie("name",null,{path:"/"});  终于成功了. 或许是$.cookie的一个bug吧, 不知最新版的有没有修复这个Bug

  • jQuery基于cookie实现的购物车实例分析

    本文实例讲述了jQuery基于cookie实现的购物车.分享给大家供大家参考,具体如下: 这里分析了jquery购物车原理,包括添加商品及数量到购物车 cookie 中,判断购物车中有无商品,如果有,则把json字符串转换成对象,返回当前商品在 cookie 中的总数. 将商品放入购物车: $(function(){ $(".tc").hide(); var PId = $("#hfPId").val(); // 商品的ID var PName = $("

随机推荐