javascript操作cookie方法函数集合第1/2页

 更新时间:2010年07月08日 02:28:03   作者:  
很多朋友需要使用到cookies操作,脚本之家以前也发表了不少相关的文章。这篇文章,虽然乱了点,但知识点比较多。
问题:
使得在访问页面的时候能够沿用上次的设置,或者在不同的页面间共享数据。比如用户在访问网站的时候设置了页面字体的大小,那么会希望下次访问的时候仍然能使用同样的设置进行浏览,而不用重复设置。
解决方案:
在用户浏览页面并进行设置时,将这些设置保存在cookie中,下次访问的时候读取cookie中的设置。
参考下面的脚本:
复制代码 代码如下:

// utility function to retrieve an expiration data in proper format;
function getExpDate(days, hours, minutes)
{
var expDate = new Date();
if(typeof(days) == "number" && typeof(hours) == "number" && typeof(hours) == "number")
{
expDate.setDate(expDate.getDate() + parseInt(days));
expDate.setHours(expDate.getHours() + parseInt(hours));
expDate.setMinutes(expDate.getMinutes() + parseInt(minutes));
return expDate.toGMTString();
}
}
//utility function called by getCookie()
function getCookieVal(offset)
{
var endstr = document.cookie.indexOf(";", offset);
if(endstr == -1)
{
endstr = document.cookie.length;
}
return unescape(document.cookie.substring(offset, endstr));
}
// primary function to retrieve cookie by name
function getCookie(name)
{
var arg = name + "=";
var alen = arg.length;
var clen = document.cookie.length;
var i = 0;
while(i < clen)
{
var j = i + alen;
if (document.cookie.substring(i, j) == arg)
{
return getCookieVal(j);
}
i = document.cookie.indexOf(" ", i) + 1;
if(i == 0) break;
}
return;
}
// store cookie value with optional details as needed
function setCookie(name, value, expires, path, domain, secure)
{
document.cookie = name + "=" + escape(value) +
((expires) ? "; expires=" + expires : "") +
((path) ? "; path=" + path : "") +
((domain) ? "; domain=" + domain : "") +
((secure) ? "; secure" : "");
}
// remove the cookie by setting ancient expiration date
function deleteCookie(name,path,domain)
{
if(getCookie(name))
{
document.cookie = name + "=" +
((path) ? "; path=" + path : "") +
((domain) ? "; domain=" + domain : "") +
"; expires=Thu, 01-Jan-70 00:00:01 GMT";
}
}

使用getCookie(name)函数来读取cookie中保存的值,参数name为cookie项的名称。如果该cookie项不存在则返回一个空字符串。
使用setCookie()函数来保存cookie项的值,其中第一、二两个参数分别为cookie项的名称和值。如果想为其设置一个过期时间,那么就需要设置第三个参数,这里需要通过getExpDate()获得一个正确格式的参数。
最后,使用deleteCookie()来删除一个已存在的cookie项,实际上是通过让该项过期。
cookie将数据保存在客户端。页面的脚本只能读取所在域和服务器的cookie值,如果域内有多个服务器,那么需要设置第五个参数,以指定服务器。浏览器的容量一般限定为每服务器20个name/value对,每个cookie项不超过4000个字符,更现实点,单个cookie项应少于2000字符,也就是说不要用cookie在客户端保存大容量数据。
不同的浏览器保存cookie的方式也有所不同。IE为每个域的cookie建立一个文本文件,而Netscape则将所有的cookie存储在同一个文本文件中。
注意:cookie存放在客户端,所以会受到浏览器设置的影响,比如用户可能会禁用cookie。要检测浏览器是否支持cookie,使用属性navigator.cookieEnabled来判断。

相关文章

  • js使用栈来实现10进制转8进制与取除数及余数

    js使用栈来实现10进制转8进制与取除数及余数

    这篇文章主要介绍了js使用栈来实现10进制转8进制、js取除数、余数,需要的朋友可以参考下
    2014-06-06
  • JS实现返回上一页并刷新页面的方法分析

    JS实现返回上一页并刷新页面的方法分析

    这篇文章主要介绍了JS实现返回上一页并刷新页面的方法,结合实例形式分析了javascript针对移动端、PC端浏览器的页面缓存刷新相关操作技巧,需要的朋友可以参考下
    2019-07-07
  • Javascript根据指定下标或对象删除数组元素

    Javascript根据指定下标或对象删除数组元素

    删除数组元素在工作中经常会用到,本文讲解一下Javascript根据下标删除数组元素的方法,需要了解的朋友可以参考下
    2012-12-12
  • JS判断数组那点事

    JS判断数组那点事

    在面试过程中经常被面试官问到这样的题目:如何判断数组?下面小编就针对这个问题给大家收集整理了份资料,感兴趣的朋友一起看看吧
    2017-10-10
  • JS实现简单的浮动碰撞效果示例

    JS实现简单的浮动碰撞效果示例

    这篇文章主要介绍了JS实现简单的浮动碰撞效果,类似于广告悬浮图片在屏幕上来回碰撞的效果,涉及javascript结合时间动态操作页面元素属性的相关技巧,需要的朋友可以参考下
    2017-12-12
  • js 匿名调用实现代码

    js 匿名调用实现代码

    js中定义函数的方式有多种,函数直接量就是其中一种。如var fun = function(){},这里function如果不赋值给fun那么它就是一个匿名函数。
    2009-06-06
  • JS实现带圆弧背景渐变效果的导航菜单代码

    JS实现带圆弧背景渐变效果的导航菜单代码

    这篇文章主要介绍了JS实现带圆弧背景渐变效果的导航菜单代码,涉及JavaScript基于鼠标事件操作页面元素属性的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-10-10
  • 纯js实现倒计时功能

    纯js实现倒计时功能

    本文主要介绍了通过js实现页面的倒计时功能的思路与方法,具有一定的参考价值,下面跟着小编一起来看下吧
    2017-01-01
  • Bootstrap基本插件学习笔记之折叠(22)

    Bootstrap基本插件学习笔记之折叠(22)

    这篇文章主要为大家详细介绍了Bootstrap基本插件学习笔记之折叠的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-12-12
  • 微信小程序比较两个数大小的实现方法

    微信小程序比较两个数大小的实现方法

    最近在工作中遇到一个需求,可以自动对比两个数的大小,下面这篇文章主要给大家介绍了关于微信小程序比较两个数大小的实现方法,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-03-03

最新评论