zoukankan      html  css  js  c++  java
  • 用JavaScript操作cookie

    写入和读取Cookie是一种常见的功能,可惜JavaScript对此的直接支持并不算完善,下面是几个操作Cookie的函数,用起来还是蛮方便的。

    // utility function to retrieve an expiration date in proper

    // format; pass three integer parameters for the number of days, hours,

    // and minutes from now you want the cookie to expire (or negative

    // values for a past date); all three parameters are required,

    // so use zeros where appropriate

    function getExpDate(days, hours, minutes) {

        var expDate = new Date( );

        if (typeof days == "number" && typeof hours == "number" &&

            typeof hours == "number") {

            expDate.setDate(expDate.getDate( ) + parseInt(days));

            expDate.setHours(expDate.getHours( ) + parseInt(hours));

            expDate.setMinutes(expDate.getMinutes( ) + parseInt(minutes));

            return expDate.toGMTString( );

        }

    }

      

    // utility function called by getCookie( )

    function getCookieVal(offset) {

        var endstr = document.cookie.indexOf (";", offset);

        if (endstr == -1) {

            endstr = document.cookie.length;

        }

        return unescape(document.cookie.substring(offset, endstr));

    }

      

    // primary function to retrieve cookie by name

    function getCookie(name) {

        var arg = name + "=";

        var alen = arg.length;

        var clen = document.cookie.length;

        var i = 0;

        while (i < clen) {

            var j = i + alen;

            if (document.cookie.substring(i, j) == arg) {

                return getCookieVal(j);

            }

            i = document.cookie.indexOf(" ", i) + 1;

            if (i == 0) break;

        }

        return "";

    }

      

    // store cookie value with optional details as needed

    function setCookie(name, value, expires, path, domain, secure) {

        document.cookie = name + "=" + escape (value) +

            ((expires) ? "; expires=" + expires : "") +

            ((path) ? "; path=" + path : "") +

            ((domain) ? "; domain=" + domain : "") +

            ((secure) ? "; secure" : "");

    }

      

    // remove the cookie by setting ancient expiration date

    function deleteCookie(name,path,domain) {

        if (getCookie(name)) {

            document.cookie = name + "=" +

                ((path) ? "; path=" + path : "") +

                ((domain) ? "; domain=" + domain : "") +

                "; expires=Thu, 01-Jan-70 00:00:01 GMT";

        }

    }

    将上面的几个js命名为cookie.js,下面演示其基本用法

    <script type="text/javascript" src="cookie.js"></script>

    <script type="text/javascript">

       function foo()

       {

             var name = document.getElementById("name").value;

             if(name)

             {

                  setCookie("name",name);

             }

             document.getElementById("show").innerHTML+=("NEWEST NAME :"+ getCookie("name") + "<br>");

       }

    </script>

    Chapter 1.9 example

    <br>

    <input type="text" id="name" size="20" />

    <input type="button" value="setCookie" onclick="foo()" />

    <div id="show"></div>

    可以同时开两个窗口看看,输入框不输入值,按按钮相当于察看当前cookie。

  • 相关阅读:
    记录一则enq: TX
    RAC节点两边存储名字不一致导致的故障及相关延伸
    记录一则fsck的简单案例
    RAC某节点v$asm_disk查询hang分析处理
    统计信息自动收集任务失效原因排查
    OEMCC 13.2 安装部署
    Linux平台Oracle 12.1.0.2 单实例安装部署
    java 除法运算只保留整数位的4种方式
    eclipse spring 配置文件xml校验时,xsd报错
    oracle decode()函数的参数原来可以为sql语句!
  • 原文地址:https://www.cnblogs.com/jcomet/p/1242788.html
Copyright © 2011-2022 走看看