二十一天学通JavaScript:cookie的编码
cookie都是使用未编码的格式存入在cookie文件中的。但是在cookie中是不允许包含空格、分号、逗号等特殊符号的。如果要将这些特殊符号也写入cookie中,那就必须在写入cookie之前,先将cookie用escape编码,再在读取cookie时通过unescape函数将其还原。
【范例14-4】对cookie进行编码和解码,尝试在cookie中加入一些特殊的字符。如示例代码14-4所示。
示例代码14-4
01 <head>
02 <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
03 <title>cookie编码解码</title> <!-- -文档的标题->
04 <script language="javascript"> //JavaScript程序
05 function SetCookie(name,value) //自定义函数
06 {
07 window.document.cookie= name + "=" + escape(value)+";"; // 设置cookie
08 alert("设置成功!");
09 }
10 function GetCookie(cookieName,codeFind) //自定义函数
11 {
12 var cookieString = document.cookie; //获取cookie
13 var start = cookieString.indexOf(cookieName + '='); //截取cookie的名
14 if (start == -1) //若不存在该名字的 cookie
15 return null; //返回空值
16 start += cookieName.length + 1;
17 var end = cookieString.indexOf(';', start); //取得cookie的值
18 if(codeFind==1) //当用户以解码的方式查看时执行if语句
19 {
20 if (end == -1) //防止最后没有加“;”冒号的情况
21 return unescape(cookieString.substring(start)); //返回编码后的值
22 return unescape(cookieString.substring(start, end)); //返回编码后的值
23 }
24 else
25 {
26 // 当用户以非解码的方式查看时,执行以下三句代码
27 if (end == -1) //防止最后没有加“;”冒号的情况
28 return cookieString.substring(start); //返回cookie值
29 return cookieString.substring(start, end); //返回cookie值
30 }
31 }
32 function setValue() //一个自定义函数
33 {
34 if(Name.value!="") //当输入文本不为空时
35 {
36 // 当用户输入信息不为空时,获取输入的信息并调用函数设置cookie
37 SetCookie(Name.value,Value.value);
38 Value.value=""; //将文本框清空
39 Name.value=""; //将姓名的文本框清空
40 }
41 else
42 {
43 // 当用户输入变量名为空时,提示用户输入不正确的信息
44 alert("设置失败,cookie的名不能为空!") //提示用户设置失败
45 }
46 }
47 function getValue(n) //自定义构造一个函数
48 {
49 if(Name.value=="") //文本为空
50 {
51 alert("你没有输入要查找的cookie名"); //检查输入是否为空
52 }
53 else
54 {
55 var str=GetCookie(Name.value,n); // 查询的值不为空时,调用查询的函数
56 if(str!="")
57 {
58 Value.value=str; //取得查询的结果
59 }
60 else
61 {
62 Value.value="该值为空!"; //结果为空时提示客户
63 }
64 }
65 }
66 </script>
67 </head>
68 <body>
69 <label>
70 cookie名:
71 <input type="text" name="Name" /> <!-输入cookie的文本框-->
72 </label> <!-标签的结束-->
73 <label> <br /> <!-换行-->
74 <br /> <!-换行-->
75 cookie值:
76 <input type="text" name="Value" /> <!- cookie值的文本框-->
77 </label> <!-标签的结束-->
78 <p>
79 <label> <!-设置cookie的按钮-->
80 <input type="submit" name="Submit" value="设置cookie" οnclick="setValue ()"/>
81 </label>
82 <label> <!-查询cookie的按钮-->
83 <input type="submit" name="Submit2" value="查询cookie" οnclick="getValue (1)" />
84 </label>
85 <label> <!-以非解码的方式查看-->
86 <input type="submit" name="Submit3" value="非解码查询" οnclick="getValue (0)"/>
87 </label>
88 </p>
89 </body>
【运行结果】打开网页文件运行程序。
【代码解析】该代码段第5~9行是设置cookie的过程。这里只用了一个参数。代码第10~31行是读取cookie的过程。主要是利用“;”和“=”将cookie的键与值分开,并找到所要的结果。
警告:如果cookie里有特殊字符,则一定要经过编码和译码。
二十一天学通JavaScript:cookie的编码相关推荐
- 《21天学通HTML+CSS+JavaScript Web开发(第7版)》——1.4 统一资源定位符
本节书摘来自异步社区<21天学通HTML+CSS+JavaScript Web开发(第7版)>一书中的第1章,第1.4节,作者:[美]Laura Lemay(劳拉·莱梅) , Rafe C ...
- 21天学通HTML+CSS+JavaScript Web开发(第7版) 中文完整pdf扫描版
21天学通HTML CSS JavaScript Web开发(第7版)是全球畅销书<21天学通使用HTML与CSS发布Web站点>的全新升级版本,作者在本书囊括了新的HTML5与CSS3技 ...
- 5天速通JavaScript
5天速通JavaScript 一,JavaScript是什么和作用? 二,JavaScript的组成与特点 二,JavaScript入门 三,JavaScript的注释 四,浏览器控制台的使用 五,基 ...
- 学通PHP的24堂课(配光盘)(软件开发羊皮卷)
查看书籍详细信息: 学通PHP的24堂课(配光盘)(软件开发羊皮卷) 内容简介 <学通php的24堂课>以24堂课的形式,从初中级用户的角度出发,突出学.练.用相结合,用科学合理的设计全面 ...
- 学通C#的24堂课(奋斗的小鸟)_PDF 电子书
下载地址:http://pan.baidu.com/share/link?shareid=2442589965&uk=721744522 QQ:2864670220 主编推荐 < ...
- 1、《学通Java Web的24堂课》纠错之一 —— 开篇:《学通Java Web的24堂课》简介
2012年3月8日购于卓越网(真是个好日子) 基本信息 出版社: 清华大学出版社; 第1版 (2011年7月2日) 丛书名: 软件开发羊皮卷 平装: 718页 正文语种: 简体中文 开本: 16 IS ...
- JavaScript Cookie记录用户上次登陆的时间
目录 目录 前言 一.Cookie是什么? 二.需求分析 需求: 思路: 三.如何判断什么情况下是第一次访问,什么情况下是第n次访问? 四.代码如下 1.创建登录页面 2.登录成功判断是否为第一次访问 ...
- JavaScript最全编码规范
转载: JavaScript最全编码规范 类型 ●基本类型:访问基本类型时,应该直接操作类型值 ●string ●number ●boolean ●null ●undefined var foo = ...
- 《21天学通C++(第7版)》——12.8 作业
本节书摘来自异步社区出版社<21天学通C++(第7版)>一书中的第12章,第12.8节,作者: [美]Siddhartha Rao, [德]Nicolai M. Josuttis,更多章节 ...
- 21day学通python epub_21天就让你掌握Python语言,《21天学通Python》PDF版送给你去学...
Python的学习书籍小编看过很多,但是这本<21天学通Python>真的是堪称极品! 本书的作者团队成员为一线开发工程师.资深编程专家或专业培训师,在编程开发方面有着丰富的经验,并已出版 ...
最新文章
- WEB 测试点总结
- tableau可视化数据分析60讲(二十一)-tableau预测及趋势线
- 【经典重温】所有数据无需共享同一个卷积核!谷歌提出条件参数化卷积CondConv(附Pytorch复现代码)...
- 百度AI学习:三、文字识别
- Windows Server 2008 Server Core模式
- 【数据结构】线段树(interval tree)
- 有关STL使用上的一些注意事项。关于某些函数的参数问题。
- 25. 熟悉非标准的哈希容器
- java项目关联关系_Mybatis一对多关联关系映射实现过程解析
- 解决keil4与keil5不兼容问题
- matlab电流测量接法,matlab电压电流测量模块的使用
- 打印纸张尺寸换算_电脑打印纸规格全记录
- Linux学习(4)-文件颜色,绿色,蓝色,白色,红色等代表的意义
- TesterHome android app 编写历程(六)
- java web工程,传递字符串参数小记
- SEO主要是做什么的?零基础能学习吗?
- Linux中磁盘扫描流程描述
- golang之gorm的事务操作 事务不成功原因
- EE308_Lab1
- 同盾设备指纹简单分析及手机相关ID了解