全国咨询热线:18720358503

小程序转流应用教程_关于Javascript中document.cooki

类别:行业新闻 发布时间:2021-01-12 浏览人次:

关于Javascript中document.cookie的使用       这篇文章主要介绍了关于Javascript中document.cookie的使用,通过cookie来记住密码保存密码功能,需要的朋友可以参考下

在cookie的名或值中不能使用分号(;)、逗号(,)、等号(=)以及空格。

在cookie的名中做到这点很容易,但要保存的值是不确定的。如何来存储这些值呢?

方法是用escape()函数进行编码,它能将一些特殊符号使用十六进制表示,例如空格将会编码为“20%”,从而可以存储于cookie值中,而且使用此种方案还可以避免中文乱码的出现。例如:

document.cookie="str="+escape("I love ajax");

相当于: document.cookie="str=I%20love%20ajax";

当使用escape()编码后,在取出值以后需要使用unescape()进行解码才能得到原来的cookie值,这在前面已经介绍过。 尽管document.cookie看上去就像一个属性,可以赋不同的值。但它和一般的属性不一样,改变它的赋值并不意味着丢失原来的值,例如连续执行下面两条语句:

document.cookie="userId=828";
document.cookie="userName=hulk";

这时浏览器将维护两个cookie,分别是userId和userName,因此给document.cookie赋值更像执行类似这样的语句:

document.addCookie("userId=828");
document.addCookie("userName=hulk");

事实上,浏览器就是按照这样的方式来设置cookie的,如果要改变一个cookie的值,只需重新赋值,例如:

document.cookie="userId=929";

这样就将名为userId的cookie值设置为了929。

获取cookie的值

下面介绍如何获取cookie的值。cookie的值可以由document.cookie直接获得:

var strCookie=document.cookie;

这将获得以分号隔开的多个名/值对所组成的字符串,这些名/值对包括了该域名下的所有cookie。例如:

 script language="JavaScript" type="text/javascript" 
document.cookie="userId=828";
document.cookie="userName=hulk";
var strCookie=document.cookie;
alert(strCookie);
//-- 
 /script 

由此可见,只能够一次获取所有的cookie值,而不能指定cookie名称来获得指定的值,这正是处理cookie值最麻烦的一部分。

用户必须自己分析这个字符串,来获取指定的cookie值,例如,要获取userId的值,可以这样实现:

 script language="JavaScript" type="text/javascript" 
//设置两个cookie
document.cookie="userId=828";
document.cookie="userName=hulk";
//获取cookie字符串
var strCookie=document.cookie;
//将多cookie切割为多个名/值对
var arrCookie=strCookie.split("; ");
var userId;
//遍历cookie数组,处理每个cookie对
for(var i=0;i arrCookie.length;i++){
 var arr=arrCookie[i].split("=");
 //找到名称为userId的cookie,并返回它的值
 if("userId"==arr[0]){
 userId=arr[1];
 break;
alert(userId);
//-- 
 /script 

这样就得到了单个cookie的值

用类似的方法,可以获取一个或多个cookie的值,其主要的技巧仍然是字符串和数组的相关操作。

给cookie设置终止日期 到现在为止,所有的cookie都是单会话cookie,即浏览器关闭后这些cookie将会丢失,事实上这些cookie仅仅是存储在内存中,而没有建立相应的硬盘文件。

在实际开发中,cookie常常需要长期保存,例如保存用户登录的状态。这可以用下面的选项来实现:

document.cookie="userId=828;
expires=GMT_String";

其中GMT_String是以GMT格式表示的时间字符串,这条语句就是将userId这个cookie设置为GMT_String表示的过期时间,超过这个时间,cookie将消失,不可访问。例如:

如果要将cookie设置为10天后过期,可以这样实现:

 script language="JavaScript" type="text/javascript" 
 !-- //获取当前时间
var date=new Date();
var expireDays=10; //将date设置为10天以后的时间
date.setTime(date.getTime()+expireDays*24*3600*1000); //将userId和userName两个cookie设置为10天后过期
document.cookie="userId=828; userName=hulk;
expire="+date.toGMTString(); //-- 
 /script 

删除cookie

为了删除一个cookie,可以将其过期时间设定为一个过去的时间,例如:

 script language="JavaScript" type="text/javascript" 
//获取当前时间
var date=new Date();
//将date设置为过去的时间
date.setTime(date.getTime()-10000);
//将userId这个cookie删除
document.cookie="userId=828; expire="+date.toGMTString();
//-- 
 /script 

指定可访问cookie的路径 默认情况下,如果在某个页面创建了一个cookie,那么该页面所在目录中的其他页面也可以访问

该cookie。如果这个目录下还有子目录,则在子目录中也可以访问。

例如在中所创建的cookie,可以被或 html/ 所访问,但不能被访问。

为了控制cookie可以访问的目录,需要使用path参数设置cookie,语法如下:

document.cookie="name=value; path=cookieDir";

其中cookieDir表示可访问cookie的目录。例如:

document.cookie="userId=320; path=/shop";

就表示当前cookie仅能在shop目录下使用。

如果要使cookie在整个网站下可用,可以将cookie_dir指定为根目录,例如:

document.cookie="userId=320; path=/";

指定可访问cookie的主机名 和路径类似,主机名是指同一个域下的不同主机,例如:就

是两个不同的主机名。默认情况下,一个主机中创建的cookie在另一个主机下是不能被访问的,但可以通过domain参数来实现对其的控制,其语法格式为:

document.cookie="name=value;
domain=cookieDomain";

以google为例,要实现跨主机访问,可以写为:

document.cookie="name=value;
domain=.";

下的主机都可以访问该cookie。

综合示例:构造通用的cookie处理函数 cookie的处理过程比较复杂,并具有一定的相似性。因此可以定义几个函数来完成cookie的通用

操作,从而实现代码的复用。下面列出了常用的cookie操作及其函数实现。

1.添加一个cookie:addCookie(name,value,expireHours) 该函数接收3个参数:cookie名称,cookie值,以及在多少小时后过期。

这里约定expireHours为0时不设定过期时间,即当浏览器关闭时cookie自动消失。该函数实现如下:

 script language="JavaScript" type="text/javascript" 
function addCookie(name,value,expireHours){
 var cookieString=name+"="+escape(value);
 //判断是否设置过期时间
 if(expireHours 0){
 var date=new Date();
 date.setTime(date.getTime+expireHours*3600*1000);
 cookieString=cookieString+"; expire="+date.toGMTString();
 document.cookie=cookieString;
//-- 
 /script 

2.获取指定名称的cookie值:getCookie(name)

该函数返回名称为name的cookie值,如果不存在则返回空,其实现如下:

 script language="JavaScript" type="text/javascript" 
function getCookie(name){
 var strCookie=document.cookie;
 var arrCookie=strCookie.split("; ");
 for(var i=0;i arrCookie.length;i++){
 var arr=arrCookie[i].split("=");
 if(arr[0]==name)return arr[1];
 return "";
//-- 
 /script 

3.删除指定名称的cookie:deleteCookie(name)

该函数可以删除指定名称的cookie,其实现如下:

 script language="JavaScript" type="text/javascript" 
function deleteCookie(name){
 var date=new Date();
 date.setTime(date.getTime()-10000);
 document.cookie=name+"=v; expire="+date.toGMTString();
//-- 
 /script 

以上所述是小编给大家介绍的关于Javascript中document.cookie的使用,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对凡科网站的支持!


下一篇:没有了

推荐阅读

小程序转流应用教程_关于Javascript中document.cooki

有关Javascript中document.cookie的应用 本文关键详细介绍了有关Javascript中document.cookie的应用,根据cookie来记牢登陆密码储存登陆密码作用,必须的朋友能够参照下在cookie的名或值中不可...

2021-01-12
微信小程序是什么-行业动态,大连企业网站建设

现如今各种视頻网站和直播间网站十分的火爆,收看各种各样视頻网站和直播间早已变成大家日常生活中见怪不怪的事儿。很多人见到了视屏直播间的这一填满发展潜力的销售市场,决...

2021-01-12
许多网站管理员在优化网站时往往会忽略这四个

一般网站将会没法在实际操作全过程中开启,或是开启速率很慢。这时候,许多客户能够根据检索模块快照更新,SEO开启相对的网页页面,但网站在的相对照片,百度搜索检索模块提升...

2021-01-12
网站排名上不去怎么办

许多做SEO的小伙子伴常常会碰到一个相互的难题,提升了较长一一段时间为何网站的重要词排行便是提不上呢?今日凡科高新科技就依据自身这两年提升的工作经验,告知大伙儿搜索引...

2021-01-12
《网页设计综合指南》(三):移动适配、无障

您的部位: > 新闻报道新闻资讯 > 网站制作 > 《网页页面设计方案综合性手册》(三):移动兼容、无障大字号的文字比照度最少要 4.5:1。最好的比照度是7:1。字体大小很大的文字(...

2021-01-12
农村电商网站建设需不需要做推广

提到乡村电子商务,许多人都是想起电子商务下乡,包含淘宝网村、京东商城等大中型电子商务服务平台,而很少有乡村电子商务网站被网友所熟识,它是是什么原因呢?一名被马云爸爸...

2021-01-12
X

400-8700-61718720358503
企业邮箱2639601583@qq.com
官方微信