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。

  • 相关阅读:
    C# 实现向指定邮箱发送信息功能
    asp.net webapi 解决跨域问题
    电脑通电自动开机设置
    C# 多个控件绑定一个事件
    C# DataGridView 标题栏背景颜色改变
    C# 输出csv文件后缀乱码
    C# textbox设定为只读后如何改变文本字体颜色
    C# 命名规则
    C# 傅里叶变换 逆变换 调用MathNet包
    使用SharpDevelop配合MonoGame进行游戏开发
  • 原文地址:https://www.cnblogs.com/jcomet/p/1242788.html
Copyright © 2011-2022 走看看