很多网站、博客都采用生成技术把网页生成html静态页面了,以利于搜索引擎的索引排名,减轻服务器负担。静态页面由于其稳定性快速性,的确给SE、用户及站长带来了方便。但有时,需要记住用户的信息,如用户留下评论后,下一次再来,就要记住该用户的信息,不必再次输入。 这对用户来说,可以提高他们的归属感,熟悉感。如何实现呢? 首先,我们需要在用户提交评论后,给客户端赋予几个相关的cookies值,这个很简单,直接在评论提交页面进行赋值就可以了,asp下的cookies简单赋值方式采用下面的这样的语句: response.cookies("abcd")("username")="name"
response.cookies("abcd")("username").expires=Date+30response.cookies("abcd")("usertype")="type"
response.cookies("abcd")("usertype").expires=Date+30 通过以上asp程序中的cookies赋值,可以成功在用户客户端写入用户的cookies信息。 现在的问题是:如何在静态页html读取这个cookies,并且显示在用户面前。因为是生成了html,我们无法再利用asp程序读取这个cookies,需要通过js读取这个cookies,然后输出在指定位置,比如页面顶端一行
cookies带主键和子键,如何读取上面的两个cookies 试了好多都不可以,对js不是很在行,望高手给个例子,谢谢
response.cookies("abcd")("username").expires=Date+30response.cookies("abcd")("usertype")="type"
response.cookies("abcd")("usertype").expires=Date+30 通过以上asp程序中的cookies赋值,可以成功在用户客户端写入用户的cookies信息。 现在的问题是:如何在静态页html读取这个cookies,并且显示在用户面前。因为是生成了html,我们无法再利用asp程序读取这个cookies,需要通过js读取这个cookies,然后输出在指定位置,比如页面顶端一行
cookies带主键和子键,如何读取上面的两个cookies 试了好多都不可以,对js不是很在行,望高手给个例子,谢谢
response.cookies("username")="name"
response.cookies("username").expires=Date+30response.cookies("usertype")="type"
response.cookies("usertype").expires=Date+30则相对简单
alert("username")function getCookie(c_name)
{
if (document.cookie.length>0)
{
c_start=document.cookie.indexOf(c_name + "=");
if (c_start!=-1)
{
c_start=c_start + c_name.length+1;
c_end=document.cookie.indexOf(";",c_start);
if (c_end==-1) c_end=document.cookie.length;
return unescape(document.cookie.substring(c_start,c_end));
}
}
return "";
}
{
this.GetCookie = function(key)
{
var cookie = document.cookie;
var cookieArray = cookie.split(';');
var getvalue = "";
for(var i = 0;i<cookieArray.length;i++)
{
if(cookieArray[i].Trim().substr(0,key.length) == key)
{
getvalue = cookieArray[i].Trim().substr(key.length + 1);
break;
}
} return getvalue;
};
this.GetChild = function(cookiekey,childkey)
{
var child = this.GetCookie(cookiekey);
var childs = child.split('&');
var getvalue = "";
for(var i = 0;i < childs.length;i++)
{
if(childs[i].Trim().substr(0,childkey.length) == childkey)
{
getvalue = childs[i].Trim().substr(childkey.length + 1);
break;
}
}
return getvalue;
};
this.SetCookie = function(key,value,expire,domain,path)
{
var cookie = "";
if(key != null && value != null)
cookie += key + "=" + value + ";";
if(expire != null)
cookie += "expires=" + expire.toGMTString() + ";";
if(domain != null)
cookie += "domain=" + domain + ";";
if(path != null)
cookie += "path=" + path + ";";
document.cookie = cookie;
};
this.Expire = function(key)
{
expire_time = new Date();
expire_time.setFullYear(expire_time.getFullYear() - 1);
var cookie = " " + key + "=e;expires=" + expire_time + ";"
document.cookie = cookie;
}
}
获取cookies: var _cookie = $.cookie("st_username");
设置cookies: $.cookie("st_username", "value");
一楼、二楼的方法稍候我试试,但是我的cookie必须是带有主键和子键的,这个不好改了,必须是response.cookies("abcd")("username")="name" 这样的,不好改成单值的了。三楼:js我都不熟悉,jquery更是一头雾水
4楼:目前我用的方法就是用script标签来加载动态页来实现读取cookie显示结果现在就是想用JS来,对JS不大懂,ajax更是摸不着门啊
var Tools={}
Tools.setCookie = function (name, value) {//写入cookie
if (value == 'undefined') return
var argv = Comment.setCookie.arguments;
var argc = Comment.setCookie.arguments.length;
var expires;
var timeSpan = (argc > 2) ? argv[2] : null;
if (timeSpan != null) {
expires = new Date();
expires.setTime(new Date().getTime() + timeSpan);
}
var path = "/";
var domain = "aaa.com";
var secure = false;
document.cookie = name + "=" + escape(value) + ((!expires) ? "" : (";expires=" + expires.toGMTString())) + (";path=" + path) + (";domain=" + domain) + ((secure == true) ? ";secure" : "");
}
Tools.getCookie = function (name) {//取得cookie
var returnvalue = "";
var search = name + "=";
var reg = new RegExp("(^|(?=;)|\\b)" + search); if (document.cookie.length > 0) {
var offset = document.cookie.search(reg);
var end;
if (offset != -1) {
offset += search.length;
end = document.cookie.indexOf(";", offset);
if (end == -1)
end = document.cookie.length;
returnvalue = unescape(document.cookie.substring(offset, end));
if (returnvalue.indexOf("&") != -1) {
end = document.cookie.indexOf("&", offset);
returnvalue = unescape(document.cookie.substring(offset, end));
}
}
}
return returnvalue;
}