JS 操作 cookies 的方法

帮我实现一个代码。用JS读取 ASP的COOKIES 值。 然后在有JS判断 COOKIES 值 是否有内容。 如果有内容,输出显示,登陆成功。如果没有内容,输出显示,登陆失败。

第1个回答  2013-04-09
在 JS(JavaScript) 操作cookies比较复杂,在 ASP 里面我们只需要知道 cookie 的名称、cookie 的值就行了,而 JS 里面,我们面对的是 cookie 的字符串,你自己编写这个字符串写入客户端,然后自己解析这个字符串。

一、从写 cookie 说起。

var the_date = new Date("December 31, 2020");
var expiresDate = the_date.toGMTString();
document.cookie = "userDefineCSS=" + escape(title) + "; expires=" + expiresDate;

第一句是日期对象;

第二句将日期格式转换成 GMT 格式;编者者: GMT 即格林威治标准时间,现在也称 UTC 即全球标准时间。

第三句是将 cookie 内容写入客户端。

其中 expires 是系统使用的,表示 cookie 的失效日期(也可以省略),expires 不可读。

escape 是对 cookie 值进行编码,这是为了处理中文、空格等而设立的。

二、取 cookie 是比较简单的。

function GetCSS()
{
var cookieStr = document.cookie; //取 cookie 字符串,由于 expires 不可读,所以 expires 将不会出现在 cookieStr 中。

if (cookieStr == "")
{
return "main1"; //没有取到 cookie 字符串,返回默认值
}

var cookieValue = cookieStr.split("; "); //将各个 cookie 分隔开,并存为数组,多个 cookie 之间用分号加空隔隔开,不过前面我们只使用了一个 cookie,它的值与 expires 之间也是用分号加空格隔开的
var varName = "userDefineCSS";
var startPos = -1;
var endPos = -1;
for (var i=0; i<cookieValue.length; i++)
{
startPos = cookieValue[i].indexOf(varName);
if (startPos != 0)
{
continue; //当前 cookie 不是名称为 varName 的 cookie,判断下一个 cookie
}
startPos += varName.length + 1; //当前 cookie 就是名称为 varName 的 cookie,由于有等号,所以 +1
endPos = cookieValue[i].length;
var css = unescape(cookieValue[i].substring(startPos, endPos));
return css;
}

return "main1";
}
第2个回答  2013-04-08
思路应该是 js负责显示,判断是否登陆由asp进行,asp把结果交给js
第3个回答  2013-04-09
var jcTool = new Object();/**
* 清除字符串左右两边的空格.
*
* @example jcTool.trim('your string');
* @return string
* @desc 清除字符串左右两边的空格.
*
*/
jcTool.trim = function(text) {
return (text || '').replace(/^\s+|\s+$/g, '')
};/**
* 创建一个指定名称和值以及其他可选参数cookie.
*
* @example jcTool.cookie('the_cookie', 'the_value');
* @desc 设置一个cookie.
* @return void
* @example jcTool.cookie('the_cookie', 'the_value', { expires: 7, path: '/', domain: 'jquery.com', secure: true });
* @desc 设置一个带有所有参数的cookie.
* @return void
* @example jcTool.cookie('the_cookie', null);
* @desc 删除一个cookie.
* @return void
*
*/
/**
* 获取一个cookie的值.
*
* @example jcTool.cookie('the_cookie');
* @desc 获取一个cookie的值.
* @return string
*
* @name jcTool.cookie
*/
jcTool.cookie = function(name, value, options) {
if (typeof value != 'undefined') {
options = options || {};
if (value === null) {
value = '';
options.expires = -1
}
var expires = '';
if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) {
var date;
if (typeof options.expires == 'number') {
date = new Date();
date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000))
} else {
date = options.expires
}
expires = '; expires=' + date.toUTCString()
}
var path = options.path ? '; path=' + (options.path) : '';
var domain = options.domain ? '; domain=' + (options.domain) : '';
var secure = options.secure ? '; secure': '';
document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join('')
} else {
var cookieValue = null;
if (document.cookie && document.cookie != '') {
var cookies = document.cookie.split(';');
for (var i = 0; i < cookies.length; i++) {
var cookie = jcTool.trim(cookies[i]);
if (cookie.substring(0, name.length + 1) == (name + '=')) {
cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
break
}
}
}
return cookieValue
}
}; 以上为js获取cookies的方法,如有不明白的地方或者其他需求,请补充问题

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网