JS 操作 cookies 的方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS 操作 cookies 的方法相关的知识,希望对你有一定的参考价值。

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

参考技术A 在 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";
参考技术B 思路应该是 js负责显示,判断是否登陆由asp进行,asp把结果交给js 参考技术C 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的方法,如有不明白的地方或者其他需求,请补充问题

JS操作cookie方法

var username=document.cookie.split(";")[0].split("=")[1];
//JS操作cookies方法!
//写cookies
function setCookie(name,value)
{
var Days = 30;
var exp = new Date();
exp.setTime(exp.getTime() + Days*24*60*60*1000);
document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString();
}

function getCookie(name)
{
var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)");
if(arr=document.cookie.match(reg))
return unescape(arr[2]);
else
return null;
}

















以上是关于JS 操作 cookies 的方法的主要内容,如果未能解决你的问题,请参考以下文章

js操作cookie方法

使用vue-cookies操作cookie

js cookies存取删操作实例

Request.Cookies和Response.Cookies

JS存取Cookies值,附自己写的获取cookies的一个方法

JS操作cookie方法