实例学习JavaScript读取和写入cookie


Posted in Javascript onJanuary 29, 2018

首先先让我们简单地了解一下cookie.

在我们制作网页的过程中,经常需要把信息从一个页面传递给另一个页面,这时候就需要用到JavaScript中的cookie机制了。简单说来,cookie提供了一种便捷的方式,能够在用户的计算机上保存少量数据并且远程获得它们,从而让网站可以保存一些细节信息,比如用户的习惯设置或是上一次访问网站的时间。cookie本身是一些短小的信息,能够由页面保存在用户的计算机上,然后被其他页面读取。cookie一般都设置为在一定时间后失效。

当然,cookie也有局限之处:浏览器对于能够保存的cookie数量有所限制,通常是几百个或者多一点。一般情况下,每个域名20个cookies是允许的,而每个域最多能保存4KB的cookie.除了大小限制可能导致的问题,也有很多原因会引起硬盘上的cookie消失,比如达到有效期限了,或是用户清理了cookie信息,或是换用了其他浏览器。因此,cookie不适合用来保存重要数据,在编写代码时也要考虑到cookie获取异常的处理方法。

在JavaScript中,使用document对象的cookie属性来储存和获取cookie.通常,document.cookie里的信息是由成对的名称和值组成的字符串,每一对数据的形式是:

name=value;

下面我们将通过一个简单的例子来展示在JavaScript中如何读取和写入cookie.

首先是createCookie.html,在该页面中会创建一个cookie,完整的代码如下:

<html>
<head>
  <title>createCookie</title>
  <script>
    function createCookie(){
      //get name and password
      var name = document.getElementById("name").value;
      var pwd = document.getElementById("pwd").value;
      //create cookie
      document.cookie = name+'|'+pwd;
      //go to showCookie.html page
      window.location.href = "showCookie.html";
    }
  </script>
</head>
<body>
  Userame:  <input id="name" type="text" /><br><br>
  Password:  <input id="pwd" type="password" /><br><br>
  <button onclick="createCookie()">Submit</submit>
</body>
</html>

该页面的截图如下:

实例学习JavaScript读取和写入cookie

点击submit按钮,就会创建一个cookie,在该cookie中保存了Username和Password信息,并且会跳转到showCookie.html页面。其中,showCookie.html页面的完整代码如下:

<html>
<head>
  <title>showCookie</title>
  <script>
    function showCookie(){
      //document.cookie is a string, using split() function to get cookie date in array form 
      var arr = document.cookie.split('|');
      //processing data in cookie
      var cookie_info = 'Data in cookie:<br>username is:  '+arr[0]+"<br>password is:  "+arr[1]+'<br>';
      //set content of element of id "res"
      document.getElementById("res").innerHTML = cookie_info;
    }
  </script>
</head>
<body>
  <button onclick="showCookie()">Show Cookie</button>
  <p id="res"></p>
</body>
</html>

页面截图如下:

实例学习JavaScript读取和写入cookie

点击show Cookie按钮就会显示cookie里面的信息了。

下面,我们将会在本地和服务器上分别跑这个程序,分别在IE浏览器和Chrome浏览器上运行这个程序,看看cookie的运行情况。

首先我们在本地运行这个程序,我们将上述两个文件都放在E盘中。先在IE浏览器上运行,在createCookie.html页面上输入信息,并点击submit按钮,截图如下:

实例学习JavaScript读取和写入cookie

跳转到showCookie.html页面后,点击show Cookie按钮,页面截图如下:

实例学习JavaScript读取和写入cookie

cookie在本地环境中的IE浏览器中运行正常。

接下来,我们看看在Chrome浏览器中运行情况,首先在Chrome浏览器中打开createCookie.html页面,输入信息,并点击submit按钮,截图如下:

实例学习JavaScript读取和写入cookie

跳转到showCookie.html页面后,点击show Cookie按钮,页面截图如下:

实例学习JavaScript读取和写入cookie

同样的程序,这次cookie在Chrome浏览器中却运行失败了。

接着让我们在服务器中运行这个程序,需要用到xampp,并打开Apache服务器,将上述两个html文件放在xampp安装文件夹下的htdocs文件夹下(具体的操作方法可以参考这篇博客:JavaScript之使用AJAX(适合初学者))。我们现在IE浏览器中运行该程序,在IE浏览器中输入网址:http://localhost/createCookie...:

实例学习JavaScript读取和写入cookie

点击Submit按钮,跳转到showCookie.html页面,并点击show Cookie按钮,截图如下:

实例学习JavaScript读取和写入cookie

然后我们在Chrome浏览器中输入网址:http://localhost/createCookie...:

实例学习JavaScript读取和写入cookie

点击Submit按钮,跳转到showCookie.html页面,并点击show Cookie按钮,截图如下:

实例学习JavaScript读取和写入cookie

这次在服务器环境下,IE浏览器和Chrome浏览器的cookie都运行正常!

Javascript 相关文章推荐
IE8 兼容性问题(属性名区分大小写)
Jun 04 Javascript
JavaScript中null与undefined分析
Jul 25 Javascript
数组Array进行原型prototype扩展后带来的for in遍历问题
Feb 07 Javascript
struts2+jquery组合验证注册用户是否存在
Apr 30 Javascript
Javascript函数式编程语言
Oct 11 Javascript
浅谈javascript中onbeforeunload与onunload事件
Dec 10 Javascript
js获取当前年月日-YYYYmmDD格式的实现代码
Jun 01 Javascript
JS之相等操作符详解
Sep 13 Javascript
layui实现动态和静态分页
Apr 28 Javascript
解决layui数据表格table的横向滚动条显示问题
Sep 04 Javascript
基于javascript实现贪吃蛇小游戏
Nov 25 Javascript
在antd中setFieldsValue和defaultVal的用法
Oct 29 Javascript
微信小程序之多文件下载的简单封装示例
Jan 29 #Javascript
JS中Object对象的原型概念基础
Jan 29 #Javascript
vue.js实现只弹一次弹框
Jan 29 #Javascript
javascript trie前缀树的示例
Jan 29 #Javascript
Vue官网todoMVC示例代码
Jan 29 #Javascript
jquery动态添加以及遍历option并获取特定样式名称的option方法
Jan 29 #jQuery
Angular2 父子组件通信方式的示例
Jan 29 #Javascript
You might like
PHP 使用pcntl和libevent 实现Timer功能
2013/10/27 PHP
利用php下载xls文件(自己动手写的)
2014/04/18 PHP
使用纯php代码实现页面伪静态的方法
2015/07/25 PHP
php 算法之实现相对路径的实例
2017/10/17 PHP
如何实现浏览器上的右键菜单
2006/07/10 Javascript
博客侧边栏模块跟随滚动条滑动固定效果的实现方法(js+jquery等)
2013/03/24 Javascript
多种方式实现JS调用后台方法进行数据交互
2013/08/20 Javascript
当前流行的JavaScript代码风格指南
2014/09/10 Javascript
js仿百度登录页实现拖动窗口效果
2016/03/11 Javascript
浅析Javascript ES6新增值比较函数Object.is
2016/08/24 Javascript
完美解决IE9浏览器出现的对象未定义问题
2016/09/29 Javascript
JavaScript 计算笛卡尔积实例详解
2016/12/02 Javascript
EasyUi 打开对话框后控件赋值及赋值后不显示的问题解决办法
2017/01/19 Javascript
浅谈vue实现数据监听的函数 Object.defineProperty
2017/06/08 Javascript
vuejs项目打包之后的首屏加载优化及打包之后出现的问题
2018/04/01 Javascript
用node撸一个监测复联4开售短信提醒的实现代码
2019/04/10 Javascript
解决vue cli4升级sass-loader(v8)后报错问题
2020/07/30 Javascript
python的keyword模块用法实例分析
2015/06/30 Python
Python使用爬虫抓取美女图片并保存到本地的方法【测试可用】
2018/08/30 Python
对Python3.x版本print函数左右对齐详解
2018/12/22 Python
Python 类的私有属性和私有方法实例分析
2019/09/29 Python
python 列表、字典和集合的添加和删除操作
2019/12/16 Python
linux mint中搜狗输入法导致pycharm卡死的问题
2020/10/28 Python
Python获取android设备cpu和内存占用情况
2020/11/15 Python
css3选择器基本介绍
2014/12/15 HTML / CSS
REISS英国官网:伦敦High Street最受欢迎品牌
2016/12/21 全球购物
Hertz荷兰:荷兰和全球租车
2018/01/07 全球购物
衰败城市英国官网:Urban Decay英国
2020/04/29 全球购物
室内设计专业学生的自我评价分享
2013/11/27 职场文书
学生实习介绍信
2014/01/15 职场文书
交通安全标语
2014/06/06 职场文书
研究生简历自我评价范文
2014/09/13 职场文书
目标责任书格式范文
2015/05/11 职场文书
旅行社计调工作总结
2015/08/12 职场文书
七年级作文之英语老师
2019/10/28 职场文书
java开发双人五子棋游戏
2022/05/06 Java/Android