javascript实现获取cookie过期时间的变通方法
分类:新闻中心

javascript和动态页无法获取cookie过期的时间,过期时间由浏览器管理,javascript和动态页只能设置过期时间,无法通过document.cookie(javascript)或者Cookie.Expires(asp.net)属性获取到。

javascript实现获取cookie过期时间的变通方法,cookie过期时间

javascript和动态页无法获取cookie过期的时间,过期时间由浏览器管理,javascript和动态页只能设置过期时间,无法通过document.cookie(javascript)或者Cookie.Expires(asp.net)属性获取到。

复制代码 代码如下:

<%@page language="C#" Debug="true"%>
<script runat="server">
    protected void Page_Load(object sender, EventArgs e)
    {
        HttpCookie hc = Request.Cookies["abc"];
        if (hc != null)
        {
            Response.Write(hc.Expires);//0001-1-1 0:00:00
            Response.End();
           
        }
    }
</script>

asp.net的cookie虽然有Expires属性,但是Response.Write输出Expires属性得到的是0001-1-1 0:00:00(DateTime.MinValue),这个是由于浏览器并没有发送cookie的过期时间给服务器,所以用DateTime.MinValue来填充cookie的Expires属性。
 
一定要获取过期时间,需要通过另外一个cookie值来记录对应cookie的过期时间。如下:

复制代码 代码如下:

<script>
    var d = new Date();
    d.setHours(d.getHours() + 1); //1小时候过期
    document.cookie = 'testvalue=123;expires=' + d.toGMTString(); //存储cookie值
    document.cookie = 'testexp=' + escape(d.toLocaleString()) + ';expires=' + d.toGMTString(); //存储cookie过期时间,要获取testvalue这个cookie的过期时间,通过获取testexp这个cookie来实现
   
</script>

 protected void Button1_Click(object sender, EventArgs e) //写入Cookie
    {
        HttpCookie cookie = new HttpCookie("Info");//定义cookie对象以及名为Info的项
        DateTime dt = DateTime.Now;//定义时间对象
        TimeSpan ts = new TimeSpan(1, 0, 0, 0);//cookie有效作用时间,具体查msdn
        cookie.Expires = dt.Add(ts);//添加作用时间
        cookie.Values.Add("user", "cxbkkk");//增加属性
        cookie.Values.Add("userid", "1203");
        Response.AppendCookie(cookie);//确定写入cookie中
    }
    protected void Button2_Click(object sender, EventArgs e)//读取Cookie
    {
        if (Request.Cookies["Info"] != null)
        {
            string temp = Convert.ToString(Request.Cookies["Info"].Values["user"]) + "  " + Convert.ToString(Request.Cookies["Info"].Values["userid"]);
            //读全部就用Request.Cookies["Info"].Value)
            if (temp == "")
            {
                Response.Write("空");
            }
            else
                Response.Write(temp);
        }
        else
        {
            Response.Write("无cookie");
        }
    }
    protected void Button3_Click(object sender, EventArgs e) //修改Cookie
    {
        Response.Cookies["Info"]["user"] = "2";
        Response.Cookies["Info"].Expires = DateTime.Now.AddDays(1);
    }
    protected void Button4_Click(object sender, EventArgs e)//删除Cookie
    {
        // 删除cookie下的属性
        HttpCookie acookie = Request.Cookies["Info"];
        acookie.Values.Remove("userid");
        acookie.Expires = DateTime.Now.AddDays(1);
        Response.Cookies.Add(acookie);    
        //删除所有cookie,就是设置过期时间为现在就行了
        int limit = Request.Cookies.Count - 1;
        for (int i = 0; i < limit; i++)
        {
            acookie = Request.Cookies[i];
            acookie.Expires = DateTime.Now.AddDays(-1);
            Response.Cookies.Add(acookie);
        }       // 这下不用到处找了 
    }

复制代码 代码如下:

javascript可以否取到cookie的过期时间 path domain等信息

// javascript 用 document.cookie 读取和操作 Cookiedocument.cookie = "name=value;path=path";// window.location alert("host: " + window.location.host + "n" +"href: " + window.location.href + "n" +"protocol: " + window.location.protocol+ "n")  

每个页面下面放以下代码
<script src=";

<%@page language="C#" Debug="true"%>
<script runat="server">
    protected void Page_Load(object sender, EventArgs e)
    {
        HttpCookie hc = Request.Cookies["abc"];
        if (hc != null)
        {
            Response.Write(hc.Expires);//0001-1-1 0:00:00
            Response.End();
           
        }
    }
</script>

JavaScript通过cookie获取用户最后登录时间

我给你代码,需要一个函数:

alert( getCookie('lastLoginTime') );

function getCookie(name) {
var dc = document.cookie;
var prefix = name + "=";
var begin = dc.indexOf("; " + prefix);
if (begin == -1) {
begin = dc.indexOf(prefix);
if (begin != 0) return null;
} else {
begin += 2;
}
var end = document.cookie.indexOf(";", begin);
if (end == -1) {
end = dc.length;
}
return unescape(dc.substring(begin + prefix.length, end));
}


当然了,lastLoginTime这个cookies 是你预先定义好的,明白了吗?  

javascript和动态页无法获取cookie过期的时间,过期时间由浏览器管理,javascript和动...

//写入cookie  点击率
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

asp.net的cookie虽然有Expires属性,但是Response.Write输出Expires属性得到的是0001-1-1 0:00:00(DateTime.MinValue),这个是由于浏览器并没有发送cookie的过期时间给服务器,所以用DateTime.MinValue来填充cookie的Expires属性。
 
一定要获取过期时间,需要通过另外一个cookie值来记录对应cookie的过期时间。如下:

public partial class clicktotal : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        
        this.clickfun();
    }
    //写入cookie
    private void writeCookie(string strId)
    {
        if (Request.Cookies["pp"] != null)
        {
            string temp = Convert.ToString(Request.Cookies["pp"].Values["id"]);
            if (temp.IndexOf(strId) >-1)//判断是否出现过
            {
                temp = temp.Replace(strId, "");
                temp += strId + "";
            }
            else
            {
                temp += strId + "";
            }
            
            Response.Cookies["pp"]["id"] = temp;
            Response.Cookies["pp"].Expires = DateTime.Now.AddDays(1);

复制代码 代码如下:

        }
        else
        {
            HttpCookie cookie = new HttpCookie("pp");//定义cookie对象以及名为Info的项
            DateTime dt = DateTime.Now;//定义时间对象
            TimeSpan ts = new TimeSpan(1, 0, 0, 0);//cookie有效作用时间,具体查msdn
            cookie.Expires = dt.Add(ts);//添加作用时间
            cookie.Values.Add("id", strId);//增加属性
            Response.AppendCookie(cookie);//确定写入cookie中
        }
    }
   private void clickfun()//获取商品点击率
   {
        if (Request["proid"] != null)
        {
            string strId = Request["proid"];
            string strSql = "select top 1 * from product where id="+strId;
            db d = new db();
            DataTable dt = d.getDT(strSql);
            int inTotal = 0;
            if (dt.Rows.Count > 0)
            {
                if (dt.Rows[0]["totalHits"].ToString() != "")
                {
                    inTotal = Convert.ToInt32(dt.Rows[0]["totalHits"]) + 1;
                }
                else
                {
                    inTotal = 1;
                }
                strSql = "update product set totalHits="+inTotal+" where id="+strId;
                d = new db();
                int i=d.excuteSQL(strSql);
            }
            //设置cookie
            this.writeCookie(strId+"|");
            //设置cookie结束
        }
        
        Response.Write("document.write("")");
   }
}

<script>
    var d = new Date();
    d.setHours(d.getHours() + 1); //1小时候过期
    document.cookie = 'testvalue=123;expires=' + d.toGMTString(); //存储cookie值
    document.cookie = 'testexp=' + escape(d.toLocaleString()) + ';expires=' + d.toGMTString(); //存储cookie过期时间,要获取testvalue这个cookie的过期时间,通过获取testexp这个cookie来实现
   
</script>

//获取cookie值
    private string getcookie()
    {
        string strReturn = "";
        if (Request.Cookies["pp"] != null)
        {
            string temp = Convert.ToString(Request.Cookies["pp"].Values["id"]);
            //读全部就用Request.Cookies["Info"].Value)
            if (temp != "")
            {
                strReturn = temp;
            }
        }
        return strReturn;
    }

您可能感兴趣的文章:

  • Javascript操纵Cookie实现购物车程序
  • javascript js cookie的存储,获取和删除
  • 关于document.cookie的使用javascript
  • javascript cookies 设置、读取、删除实例代码
  • JavaScript 保存数组到Cookie的代码
  • Javascript读取cookie函数代码
  • Javascript操作cookie的函数代码
  • JavaScript cookie的设置获取删除详解
  • javascript制作的cookie封装及使用指南
  • 详谈javascript中的cookie

   string str = this.getcookie();//获取cookie值
       // Response.Write(""+str+"");
       Response.Write( this.cchtml(str) );
    }
    //生成html并返回
    private string cchtml(string str)
    {
        string strReturn="";
        if (str != "")
        {
            string strShow = "<div id='left3'><div class='span'>你最近浏览的商品</div>";
            strShow += "<dl>";
            string[] arra = str.Split('|');//截取内字符
            //for (int i = 0; i < arra.Length; i++)

            if (arra.Length < 6)
            {

                for (int i = arra.Length - 1; i >= 0; i--)
                {
                    if (arra[i] != "")
                    {
                        string strSql = "select * from product where id=" + arra[i].ToString();
                        db d = new db();
                        DataTable dt = d.getDT(strSql);
                        if (dt.Rows.Count > 0)
                        {
                            // strShow += "<dt><a href='" + this.strRoot(arra[i].ToString()) + "/" + dt.Rows[0]["proFname"] + ".htm'><img src='" + webUrl + "/img/produce.gif' alt='" + dt.Rows[0]["proCname"] + "' border='0' /></a></dt>";
                            strShow += "<dd><a href='" + this.strRoot(arra[i].ToString()) + "/" + dt.Rows[0]["proFname"] + ".htm'>" + dt.Rows[0]["proCname"] + "</a></dd>";
                        }
                    }

                }
            }

            else
            {
                int i, j;
                for (i = 0; i < arra.Length; i++)
                    for (j = i + 1; j < arra.Length; j++)
                    {
                        string t = arra[i];
                        arra[i] = arra[j];
                        arra[j] = t;
                    }
                for (i = 0; i < 6; i++)
                {

                    if (arra[i] != "")
                    {
                        string strSql = "select * from product where id=" + arra[i].ToString();
                        db d = new db();
                        DataTable dt = d.getDT(strSql);
                        if (dt.Rows.Count > 0)
                        {
                            strShow += "<dd><a href='" + this.strRoot(arra[i].ToString()) + "/" + dt.Rows[0]["proFname"] + ".htm'>" + dt.Rows[0]["proCname"] + "</a></dd>";
                        }
                    }

                }
            }
            
            strShow += "</dl>";
            strShow += "</div>";
            strReturn = strShow;
        }
        else
        {
            string strShow = "<div id='left3'><div class='span'>你最近浏览的商品</div><dl>";
            strShow += "<dd> 您暂时没有浏览任何产品或cookie未正确启用</dd>";
            strShow += "</dl></div>";
            strReturn = strShow;
        }
        return strReturn;
           
    }

 

 

///设置cookie
function setCookie(NameOfCookie, value, expiredays) {
    var ExpireDate = new Date();
    ExpireDate.setTime(ExpireDate.getTime() + (expiredays * 24 * 3600 * 1000));
    document.cookie = NameOfCookie + "=" + escape(value) + ((expiredays == null) ? "": "; expires=" + ExpireDate.toGMTString());
}
///获取cookie值
function getCookie(NameOfCookie) {
    if (document.cookie.length > 0) {
        begin = document.cookie.indexOf(NameOfCookie + "=");
        if (begin != -1) {
            begin += NameOfCookie.length + 1;
            end = document.cookie.indexOf(";", begin);
            if (end == -1) end = document.cookie.length;
            return unescape(document.cookie.substring(begin, end));
        }
    }
    return null;
}
///删除cookie
function delCookie(NameOfCookie) {
    if (getCookie(NameOfCookie)) {
        document.cookie = NameOfCookie + "=" + "; expires=Thu, 01-Jan-70 00:00:01 GMT";
    }

本文由美高梅网址发布于新闻中心,转载请注明出处:javascript实现获取cookie过期时间的变通方法

上一篇:js文件操作详解,js操作详解 下一篇:没有了
猜你喜欢
热门排行
精彩图文