zoukankan      html  css  js  c++  java
  • liuyan

    1.  1 <!DOCTYPE html>
       2 <html>
       3 <head>
       4 <meta charset="UTF-8">
       5 <title></title>
       6 <style>
       7 #div1{
       8      400px;
       9     height: 200px;
      10     overflow:auto;
      11     border: #000000 1px solid;
      12 }    
      13 </style>
      14 </head>
      15 <body>
      16 <div id="div1">
      17     <ul id="ul1"></ul>
      18 </div>    
      19 <input type="text" id="input1" />
      20 <input type="button" id="btn" value="留言" />
      21 <script type="text/javascript" src="cookie.js" ></script>
      22 <script>
      23 btn.onclick = function(){
      24     // 输入框的内容
      25     var str = input1.value;
      26     input1.value = "";
      27     // 防止xss攻击
      28     str = str.replace(/</g,'&lt;'); // /</ 表示正则对象,g表示全局匹配
      29     str = str.replace(/>/g,'&gt;'); // 语义为,在当前的str中,全局查找>,替换成&gt;
      30     // 创建li,显示在ul中
      31     var li = document.createElement("li");
      32     ul1.appendChild(li);
      33     li.innerHTML = str;
      34     //li.innerText = str;    
      35     // 用cookie将str数据存储起来
      36     // 先把原始数据取出来
      37     // 第一次获取data这个cookie时,r拿到的时undefined
      38     var r = getCookie("data");    // r='[str1, str2....]'
      39     var arr;
      40     if( r ){ // 如果存在原始数据的话,把原始数字这个字符串,转换为数组对象
      41         arr = JSON.parse(r);     // arr = JSON.parse('[str1, str2....]')
      42     }else{    // 如果不存在原始数据时,即第一次添加数据,所以arr是空数组
      43         arr = [];
      44     }    
      45     arr.push(str);    // 把当前输入框中的值,追加存储到数组中
      46     // 把数组,转换为字符串后,保存到cookie中
      47     var jsonstr = JSON.stringify(arr);
      48     setCookie("data", jsonstr, 7);
      49 }
      50 
      51 // 打开页面时,把data,显示到ul中
      52 var r = getCookie("data");
      53 if( r ){ // 如果存在数据
      54     // 把字符串转换为数组
      55     var arr = JSON.parse(r);
      56     // 循环
      57     for( var i=0,len=arr.length; i<len; i++ ){
      58         var li = document.createElement("li");
      59         ul1.appendChild(li);
      60         li.innerHTML = arr[i];
      61     }
      62 }else{
      63     // 如果不存在数据
      64 }
      65 
      66 
      67 </script>
      68 </body>
      69 </html>
       1 function setCookie( cookieName, cookieValue, d, path ){
       2     var str = cookieName+"="+ encodeURIComponent(cookieValue);//编码
       3     if( d ){ // 如果设置了过期时间
       4         var dt = new Date();
       5         dt.setDate( dt.getDate()+d );
       6         str += ";expires="+dt.toGMTString();
       7     }
       8     if( path ){ // 如果设置了path属性
       9         str += ";path="+path;
      10     }
      11     document.cookie = str;
      12 }
      13 function getCookie( cookieName ){
      14     var str = decodeURIComponent(document.cookie);//解码
      15     var arr = str.split("; ");    // 注意根据分号和空格拆分
      16     for( var i=0,len=arr.length; i<len; i++ ){
      17         var c = arr[i].split("=");
      18         if( c[0]==cookieName ){
      19             // return c[1];// 前提是,所设置的cookie内容中没有等号
      20             // 如果cookie中存在等号的话,截取的是第一个等号后面的所有数据
      21             return arr[i].substr(cookieName.length+1)
      22         }
      23     }
      24 }
  • 相关阅读:
    vue 客户端渲染和服务端渲染
    js 数组对象深拷贝
    vue template标签
    vue watch的高级用法
    js对象数组去重
    移动端触发touchend后阻止click事件
    重读JS(四)数据类型、作用域和内存问题
    重读JS(三)基本概念
    vue项目
    [vue问题解决]vue <router-link>在浏览器上点击失效(路由不跳转)
  • 原文地址:https://www.cnblogs.com/l8l8/p/8849833.html
Copyright © 2011-2022 走看看