JS通过操作cookie定制栏目
发布时间:2021-06-17 17:11 | 人气数:1409
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta id="viewport" name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0, minimum-scale=1.0, maximum-scale=1.0, minimal-ui"> <title>js栏目定制</title> <style> *{margin:0; padding:0} #header ul li {float:left; width:80px; height:30px; text-align:center; line-height:30px; list-style:none;} .navTop { height:40px;background-color:#258DEB;font-size: 24px; font-weight: bold; text-align:center } .addlist,.box{ width:100%; border:1px #333333 solid; padding:45px 0; overflow:hidden;} .addlist ul,.box ul { list-style:none} .addlist ul li,.box ul li{ width:24.4%; border:1px solid #999; float:left; margin-left:5px; text-align:center} .addlist ul li:hover,.box ul li:hover{ background:#CCC} .his {float:left } </style> <script type="text/javascript" src="http://libs.baidu.com/jquery/1.8.3/jquery.min.js " charset="UTF-8"></script> <script> $(function(){ createNav(); if(!getCookie("cookUid")) { setCookie('cookUid',randomString(16)); } //获取cookie中的菜单数据并插入到页面 if(getCookie("nav")){ var nowNav = getCookie("nav").split(","); var noSelect = getAddList(); var html=''; var addHtml = ""; for(var i=0; i<nowNav.length; i++){ html += '<li onclick="removeThis(this)">'+nowNav[i]+'</li>'; for(var j=0; j<noSelect.length; j++){ if(nowNav[i]==noSelect[j]){ //如果有重复,移除 delLi(noSelect[j]); } } } $(".box ul").html(html) } $('#save').click(function() { txt=getCookie('nav'); cookUid = getCookie('cookUid'); // alert(txt); $.post("http://192.168.1.81:82/advManger/",{cookieset:txt,cookUid:cookUid},function(result){ res = eval("("+result+")");; console.log(res); if(res.err_code==200) { alert('定制成功'); } else { alert('定制失败'); } }); }); }) //从Cookie中获取菜单列表 function getCookieNavInfo(){} //获取未选 function getAddList(){ var addLi = $(".addlist ul li"),addListArr = []; for(var i = 0;i<addLi.length;i++){ addListArr.push(addLi[i].innerHTML) } return addListArr; } //移除标签 function delLi(text){ var addLi = $(".addlist ul li") for(var i=0; i<addLi.length; i++){ if(addLi[i].innerHTML == text) addLi[i].remove(); } } //添加菜单事件 function addThis(bnt){ var liLength = $(".box ul li"); //如果已选超过N个,禁止再选 if(liLength.length>5){ alert("最多只能选5个"); return false; } else { $(".box ul").append('<li onclick="removeThis(this)">'+$(bnt).html()+'</li>') $(bnt).remove(); saveCookie() } } //移除菜单事件 function removeThis(bnt){ $(".addlist ul").append('<li onclick="addThis(this)" title="'+bnt.title+'">'+$(bnt).html()+'</li>') $(bnt).remove(); saveCookie() } //存入Cookie obj function saveCookie(){ //获取已选标签 var li = $(".box ul li"),navArr = []; //将已选标签文字存入数组 for(var i = 0;i<li.length;i++){ navArr.push(li[i].innerHTML) } //将数组存入Cookie setCookie('nav',navArr) } //存入Cookie函数 function setCookie(name, value){ document.cookie = name + "="+ value; } //获取Cookie内容 function getCookie(name){ var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)"); if(arr=document.cookie.match(reg)){ return unescape(arr[2]); } else { return null; } } //生成一个唯一的cookieuid作为当前的用户识别身份 function randomString(len) { len = len || 32; var $chars = 'ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678'; /****默认去掉了容易混淆的字符oOLl,9gq,Vv,Uu,I1****/ var maxPos = $chars.length; var pwd = ''; for (i = 0; i < len; i++) { pwd += $chars.charAt(Math.floor(Math.random() * maxPos)); } return pwd; } function createNav() { url = 'http://www.wifijun.com/'; var nowNav = getCookie("nav").split(","); navList ='<ul>' for(var i=0; i<nowNav.length; i++){ navList += "<li class='menu-item'><a href='"+url+changeUrl(nowNav[i])+"/'>"+nowNav[i]+"|</a></li>"; } navList +='</ul>' $('#navList').html(navList); } //对关键词的转换 function changeUrl(val) { if(val=='热点'){ return 'redian'; } if(val=='财经') { return 'finance'; } if(val=='娱乐') { return 'yule'; } if(val=='微信') { return 'weixin'; } if(val=='美女') { return 'meinv'; } if(val=='淘品') { return 'taopin'; } if(val=='搞笑') { return 'joke'; } } //访问对应的api接口进行栏目的映射访问 function mapNav(hanzi,pinyin) { arrHz = hanzi.split(','); arrPy = pinyin.split(','); arr = []; for(i=0;i<arrHz.length;i++) { arr[arrHz[i]]=arrPy[i]; } return arr; } //通过中文获取对应的栏目映射 function getNav(val) { arr = mapNav('',''); if(arr[val]) return arr[val]; } var hafuNav = { } </script> </head> <body> <div class='navTop'><span id='back' class='his'><a href="javascript:history.go(-1);location.reload()">返回</a></span> 频道定制</div> <div> 点击删除频道</div> <div class="box"> <ul> <!-- 已选项 --> </ul> </div> <div> 点击添加频道</div> <div class="addlist" style="clear:both"> <ul> <li onclick="addThis(this)">热点</li> <li onclick="addThis(this)">财经</li> <li onclick="addThis(this)">娱乐</li> <li onclick="addThis(this)">美女</li> <li onclick="addThis(this)">淘品</li> <li onclick="addThis(this)">搞笑</li> </ul> </div> <div><button type='button' id='save'> 保存我的定制</button> </div> <div id='header'> 首页|<span id='navList'>热点 </span> </div> </body> </html>
关键词:JS cookie操作,定制栏目