• 用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。

  • 相关阅读:
    解决-Dmaven.multiModuleProjectDirectory system property is not set. Check $M2_HOME environment variable and mvn script match.
    .net-C#代码判断
    ashx-auth-黑色简洁验证码
    ylbtech-权限管理-数据库设计-功能权限管理技术
    ylbtech-Model-Account(通用账户模块设计)
    ADO.NET访问Access(文本数据库)数据操作(CRUD)
    连接数据库的五种不同的方式
    ylbtech-数据库设计与优化-对作为复选框/单选列表的集合表的设计
    ylbtech-cnblogs(博客园)-数据库设计-7,News(新闻)
    ylbtech-cnblogs(博客园)-数据库设计-2,Admin(用户后台)-用户自定义参数设置
  • 原文地址:https://www.cnblogs.com/jcomet/p/1242788.html
Copyright © 2020-2023  润新知