js操作cookie

Posted

tags:

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

经常在网页上看到浏览记录,在没有登陆的情况下,是不太可能把数据保存在数据库中的,那多半是放在cookie 中的,不知道这些怎么去操作,大哥们写点代码让小弟学习下。
也可发到我的邮箱:zhangxiaohui.cn@163.com

参考技术A //网页引用

<script language="javascript"src="./js/cookie.js"></script>

//取cookie值
var hrckdeptcode = Cookie("hrckdeptcode");
var hrckdeptname = Cookie("hrckdeptname");

//保存cookie值
setCookie("hrckdeptcode", deptcode, expdate, "/", null, false);
setCookie("hrckdeptname", deptname, expdate, "/", null, false);

把下面的脚本放到 cookie.js 文件里

var expdate= new Date();

function getCookieVal (offset)
var endstr = document.cookie.indexOf (";", offset);
if (endstr == -1) endstr = document.cookie.length;
return unescape(document.cookie.substring(offset, endstr));


function Cookie (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 null;


function setCookie (name,value,expires,path,domain,secure)
expdate.setTime(expdate.getTime() + (24*60*60*1000*365));
document.cookie = name + "=" + escape (value) +
((expires) ? "; expires=" + expires.toGMTString() : "") +
((path) ? "; path=" + path : "") +
((domain) ? "; domain=" + domain : "") +
((secure) ? "; secure" : "");


function deleteCookie(name)
expdate = new Date();
expdate.setTime(expdate.getTime() - (86400 * 1000 * 1));
setCookie(name, "", expdate);
本回答被提问者采纳

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的主要内容,如果未能解决你的问题,请参考以下文章

Cookie和Session

[JS]笔记15之客户端存储cookie

cookie和session的关系及细节操作及总结

Django之Session与Cookie

cookie认识

cookie中存中文