本文内容讲的是: JS 保存和删除 cookie 操作, 判断 cookie 是否存在的方法
Javascript 是一种由 Netscape 的 LiveScript 发展而来的原型化继承的基于对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,比如 Perl,遗留的速度问题,为客户提供更流畅的浏览效果。
有时我们需要用 cookie 保存用户名,记录登录状态,如何正确判断该机用户 cookie 是否存在呢?不能简单使用 a!=" 这样的写法。
- a=getCookie("username3");
- c_start=document.cookie.indexOf("username3=");
- if(c_start == -1){
- $("#login_form").show();
- $("#logined").hide();
- }
- else{
- $("#login_form").hide();
- $("#logined").show();
- $("#ustr").html(a);
- }
正确方法是:判断是否存在名为 username3 的 cookie,使用 document.cookie.indexOf("username3=") 来判断,如果返回值是 - 1,表示不存在。
JS 保存、删除 cookie 操作
用 js 保存、删除 cookie 操作比较方便,不用在程序里面写,改起来也容易,比较全的用 js 保存、删除 cookie 操作的方法如下:
- <script language=javascript>
- //获得coolie 的值
- function cookie(name) {
- var cookieArray = document.cookie.split("; "); //得到分割的cookie名值对
- var cookie = new Object();
- for (var i = 0; i < cookieArray.length; i++) {
- var arr = cookieArray[i].split("="); //将名和值分开
- if (arr[0] == name) return unescape(arr[1]); //如果是指定的cookie,则返回它的值
- }
- return "";
- }
- function delCookie(name) //删除cookie
- { document.cookie = name + "=;expires=" + (new Date(0)).toGMTString();
- }
- function getCookie(objName) { //获取指定名称的cookie的值
- var arrStr = document.cookie.split("; ");
- for (var i = 0; i < arrStr.length; i++) {
- var temp = arrStr[i].split("=");
- if (temp[0] == objName) return unescape(temp[1]);
- }
- }
- function addCookie(objName, objValue, objHours) { //添加cookie
- var str = objName + "=" + escape(objValue);
- if (objHours > 0) { //为时不设定过期时间,浏览器关闭时cookie自动消失
- var date = new Date();
- var ms = objHours * 3600 * 1000; date.setTime(date.getTime() + ms); str += "; expires=" + date.toGMTString();
- } document.cookie = str;
- }
- function SetCookie(name, value) //两个参数,一个是cookie的名子,一个是值
- {
- var Days = 30; //此 cookie 将被保存 30 天
- var exp = new Date(); //new Date("December 31, 9998");
- exp.setTime(exp.getTime() + Days * 24 * 60 * 60 * 1000); document.cookie = name + "=" + escape(value) + ";expires=" + exp.toGMTString();
- }
- function getCookie(name) //取cookies函数
- {
- var arr = document.cookie.match(new RegExp("(^| )" + name + "=([^;]*)(;|$)"));
- if (arr != null) return unescape(arr[2]);
- return null;
- }
- function delCookie(name) //删除cookie
- {
- var exp = new Date(); exp.setTime(exp.getTime() - 1);
- var cval = getCookie(name);
- if (cval != null) document.cookie = name + "=" + cval + ";expires=" + exp.toGMTString();
- }
- </script>
来源: