欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

实例学习JavaScript读取和写入cookie

程序员文章站 2023-02-19 18:50:06
首先先让我们简单地了解一下cookie. 在我们制作网页的过程中,经常需要把信息从一个页面传递给另一个页面,这时候就需要用到javascript中的cookie机制了。简...

首先先让我们简单地了解一下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都运行正常!