Jul 22

js操作cookie之网站菜单状态保持 不指定

bearjia , 14:45 , JS无尽循环 , 评论(0) , 引用(0) , 阅读(1670) , Via 本站原创 | |
今天就把公司的一个项目中的一些心得拿出来策一策

需求:导航菜单点击后保持变色状态,为了SEO不允许使用FLASH。
方法:JS对Cookie的操作

过程:

bearcookie.js文件内容如下
//添 cookie function addCookie(name,value){ var destoryTime = new Date(); destoryTime.setTime(destoryTime.getTime() + 24 * 3600 * 1000); var expireTime = destoryTime.toGMTString(); document.cookie = name+"="+value+""+ ";expires=" + expireTime + "; path=/;"; }
//获取cookie function getCookie(name){ var strCookie=document.cookie; var arrCookie=strCookie.split("; "); for(var i=0;i<arrCookie.length;i++){ var arr=arrCookie[i].split("="); if(arr[0]==name)return arr[1]; } return ""; }


页面代 如下
<script type="text/javascript"> function killErrors() { return true; } window.onerror = killErrors; function bearset(){ var zjb = getCookie("bearjia"); document.getElementById(zjb).className="li2"; document.getElementById(zjb+"a").src="/html/images/"+zjb+"b"+".jpg"; } function setcookies(value) { addCookie("bearjia",value); } </script>

并在body中写入 onload="bearset();" 来执行读取Cookie
在菜单上写入 onclick="setcookies('nav1')" 来执行添 Cookie

说明
killErrors() 方法 这个是为了清除JS错误(就是浏览器左下角的黄色感叹号)用的
bearset() 方法 读取Cookie并设置导航菜单的class值 以及改变某些图片( 为在这里我用了2 图片来表达是当前状态还是过去状态)
setcookies() 方法 添 Cookie的方法

遇到的问题:
我们的这个项目是多文件夹结构,起初在写JS添 Cookie的时候并未注意 Cookie中 path的运用, 成了不同级别的目录读取的Cookie紊乱的问题。
时间问题也很重要,时间没设置对的话是不会产生Cookie文件的,这个问题也是我一时大意,少写了个";"号的缘故。

在网上找了很多资料,最后还是自己详细的去了解了一下Cookie设置的基础和结构才解决了问题,基础真的很重要。
发表评论

昵称

网址

电邮

打开HTML 打开UBB 打开表情 隐藏 记住我 [登入] [注册]