LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

JavaScript操作Cookie

admin
2010年9月2日 13:59 本文热度 3503

Cookie是保存在浏览器端的,因此浏览器具有操作Cookie的先决条件。浏览器可以使用脚本程序如JavaScript或者VBScript等操作Cookie。这里以JavaScript为例介绍常用的Cookie操作。例如下面的代码会输出本页面所有的Cookie。

  1. <script>document.write(document.cookie);</script> 

各Cookie之间用分号";"隔开,例如:"cookie1=A;cookie2=B"。JavaScript中并没有专门处理Cookie的API,如果想单独获取某个Cookie值,只能手工写代码解析字符串。例如下面代码中的setCookie()与getCookie()方法。

代码5.7  javascript.jsp

  1. <%@ page language="java" pageEncoding="UTF-8"%>  
  2. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
  3. <html>  
  4.     <head>  
  5.         <script type="text/javascript">  
  6.         function getCookie(name){               // 返回名为name的Cookie  
  7.             var str = document.cookie;          // 获取Cookie字符串  
  8.             if(!str || str.indexOf(name + "=") < 0) // 寻找name=  
  9.                 return;  
  10.             var cookies = str.split("; ");      // 用;将所有的Cookie分隔开  
  11.             for(var i=0; i<cookies.length; i++){    // 遍历每个Cookie  
  12.                 var cookie = cookies[i];        // 当前Cookie  
  13.                 if(cookie.indexOf(name + "=") == 0){    // 如果名字为name  
  14.                     var value = cookie.substring(name.length + 1);  
  15.                                                 // 获取value  
  16.                     return decodeURI(value);    // 将value解码,并返回  
  17.                 }  
  18.             }  
  19.         }  
  20.         function setCookie(name, value){        // 设置Cookie  
  21.             document.cookie = name + "=" + encodeURI(value);  
  22.                                                 // 直接设置即可  
  23.         }  
  24.         </script>  
  25.     </head>  
  26.     <body>  
  27.         <div align="center" style="margin:10px; ">  
  28.             <fieldset>  
  29.                 <legend>当前有效的 Cookie</legend>  
  30.                 <div id="cookieDiv"></div>  
  31.                 <script type="text/javascript">  
  32.                     cookieDiv.innerHTML = document.cookie;  
  33.                 </script>  
  34.             </fieldset>  
  35.             <fieldset>  
  36.                 <legend>欢迎您</legend>  
  37.                 <table>  
  38.                     <tr>  
  39.                         <td>读取 Cookie: </td>  
  40.                         <td><input name="name1" /> <input class="button" 

    type="button" value="读取" onclick="alert   

  41.                         (getCookie(name1.value)); "></td>  
  42.                     </tr>  
  43.                     <tr>  
  44.                         <td>设置 Cookie: </td>  
  45.                         <td></td>  
  46.                     </tr>  
  47.                     <tr>  
  48.                         <td align="right">Name 属性: </td>  
  49.                         <td><input name="name2" /></td>  
  50.                     </tr>  
  51.                     <tr>  
  52.                         <td align="right">Value 属性: </td>  
  53.                         <td><input name="value2" /></td>  
  54.                     </tr>  
  55.                     <tr>  
  56.                         <td>    </td>  
  57.                         <td><input type="button" value="设置" onclick=   
  58.                         "setCookie(name2.value, value2.value); cookieDiv.   
  59.                         innerHTML = document.cookie; " class="button"></td>  
  60.                     </tr>  
  61.                 </table>  
  62.             </fieldset>  
  63.         </div>  
  64.     </body>  
  65. </html> 

代码使用纯JavaScript代码实现了读写Cookie。运行效果如图5.6所示。

上面的setCookie()是个简化了的方法,只能设置name与value属性。如果要设置所有的Cookie属性,可以使用下面的完全版本。

  1. function setCookie(name, value){                            // 设置Cookie  
  2.     var expires = (arguments.length > 2) ? arguments[2] : null;  
  3.                                                     // 判断expires属性  
  4.     var path = (arguments.length > 3) ? arguments[3] : null;  
  5.                                                     // 判断path属性  
  6.     var domain = (arguments.length > 4) ? arguments[4] : null;    
  7.                                                     // 判断domain属性  
  8.     var secure = (arguments.length > 5) ? arguments[5] : false;  
  9.                                                     // 判断secure属性  
  10.     document.cookie = name + "=" + encodeURI(value) +   // 设置Cookie属性  
  11.       ((expires == null) ? "" : ("; expires=" + expires.toGMTString())) +  
  12.       ((path == null) ? "" : ("; path=" + path)) +  
  13.       ((domain == null) ? "" : ("; domain=" + domain)) +  
  14.       ((secure == true) ? "; secure" : "");  
由于JavaScript能够任意地读写Cookie,有些好事者便想使用JavaScript程序去窥探用户在其他网站的Cookie。不过这是徒劳的,W3C组织早就意识到JavaScript对Cookie的读写所带来的安全隐患并加以防备了,W3C标准的浏览器会阻止JavaScript读写任何不属于自己网站的Cookie。换句话说,A网站的JavaScript程序读写B网站的Cookie不会有任何结果。

该文章在 2010/9/2 13:59:24 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2024 ClickSun All Rights Reserved