实例学习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 相关文章推荐
关于jQuery $.isNumeric vs. $.isNaN vs. isNaN
Apr 15 Javascript
Jquery实现页面加载时弹出对话框代码
Apr 19 Javascript
加载远程图片时,经常因为缓存而得不到更新的解决方法(分享)
Jun 26 Javascript
JavaScript字符串对象toLowerCase方法入门实例(用于把字母转换为小写)
Oct 17 Javascript
详解JavaScript中getFullYear()方法的使用
Jun 10 Javascript
JavaScript的模块化开发框架Sea.js上手指南
May 12 Javascript
js添加绑定事件的方法
May 15 Javascript
javascript 判断一个对象为数组的方法
May 03 Javascript
JS实现登录页密码的显示和隐藏功能
Dec 06 Javascript
JS实现对json对象排序并删除id相同项功能示例
Apr 18 Javascript
微信小程序获取用户绑定手机号方法示例
Jul 21 Javascript
Centos7 安装Node.js10以上版本的方法步骤
Oct 15 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 include,include_once,require,require_once
2008/09/05 PHP
php cli 方式 在crotab中运行解决
2010/02/08 PHP
php xml 入门学习资料
2011/01/01 PHP
JavaScript下利用fso判断文件是否存在的代码
2010/12/11 Javascript
Jquery下:nth-child(an+b)的使用注意
2011/05/28 Javascript
jQuery语法高亮插件支持各种程序源代码语法着色加亮
2013/04/27 Javascript
原生js实现改变随意改变div属性style的名称和值的结果
2013/09/26 Javascript
jQuery实现带滚动线条导航效果的方法
2015/01/30 Javascript
JS+HTML5手机开发之滚动和惯性缓动实现方法分析
2016/06/12 Javascript
JavaScript实战(原生range和自定义特效)简单实例
2016/08/21 Javascript
用Angular实时获取本地Localstorage数据,实现一个模拟后台数据登入的效果
2016/11/09 Javascript
jQuery插件FusionCharts实现的2D柱状图效果示例【附demo源码下载】
2017/03/06 Javascript
浅谈关于.vue文件中style的scoped属性
2017/08/19 Javascript
原生JS实现的自动轮播图功能详解
2018/12/28 Javascript
jquery中attr、prop、data区别与用法分析
2019/09/25 jQuery
vue+elementUI中表格高亮或字体颜色改变操作
2020/11/02 Javascript
微信小程序实现自定义动画弹框/提示框的方法实例
2020/11/06 Javascript
原生js实现表格循环滚动
2020/11/24 Javascript
探寻python多线程ctrl+c退出问题解决方案
2014/10/23 Python
Python简单删除列表中相同元素的方法示例
2017/06/12 Python
Python元组及文件核心对象类型详解
2018/02/11 Python
Python爬虫包BeautifulSoup异常处理(二)
2018/06/17 Python
python实现在函数图像上添加文字和标注的方法
2019/07/08 Python
详解pandas使用drop_duplicates去除DataFrame重复项参数
2019/08/01 Python
Python-openCV读RGB通道图实例
2020/01/17 Python
Python中logging日志库实例详解
2020/02/19 Python
Lookfantastic德国官网:英国知名美妆购物网站
2017/06/11 全球购物
复古斯堪的纳维亚儿童服装:Baby go Retro
2017/09/09 全球购物
美国非常受欢迎的Spa品牌:Bliss必列斯
2018/04/10 全球购物
创业计划书的主要内容有哪些
2014/01/29 职场文书
财务会计毕业生个人求职信
2014/02/03 职场文书
表彰会主持词
2014/03/26 职场文书
《北京的春节》教学反思
2014/04/07 职场文书
2014年学校食堂工作总结
2014/11/25 职场文书
武当山导游词
2015/02/03 职场文书
2015新学期家长寄语
2015/02/26 职场文书