0%

问题源于一个群里面的提问,在一个网页上添加一个select表单,当用户选择表单的时候,内容区会显示不同的内容,并在该用户下次打开此网页的时候记住这个设置。 像这样的东东一般都会想到要用Cookies来存储设置,方便起见,对于DOM的操作就想到了jQuery(直接写js执行效率会更高,只是,人都是很懒的嘛,呵呵..)。记录下来也算是个笔记吧(Demo)。 首先写这么一个Select下拉表单,以及用来输出被选中项相应内容的块:

请选择城市
北京
上海
武汉
深圳

然后是用来处理Cookies的函数,其实jQuery有个插件是干这个的,不过貌似有点小Bug,所以我用的是以下函数:

//这一大段代码你没有必要知道它的确切意思,只要复制粘贴就可以了,他们是用来提供操作Cookies的支持的
function setCookie(name,value,days) {
if (days) {
var date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
var expires = “; expires=”+date.toGMTString();
}
else var expires = “”;
document.cookie = name+”=”+value+expires+”; path=/“;
}
function getCookie(name) {
var nameEQ = name + “=”;
var ca = document.cookie.split(‘;’);
for(var i=0;i < ca.length;i++) {
var c = ca[i];
while (c.charAt(0)==’ ‘) c = c.substring(1,c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
}
return null;
}
function dropCookie(name) {
setCookie(name,””,-1);
}

然后是用来操作表单和Cookies的js:

$(function(){
//以下部分是提取Cookie并对网页内容进行预设的过程
var cityChosen = getCookie(‘citychosen’); //取得cookie中保存的值
if(cityChosen!=null && cityChosen!=’’){ //如果有这个cookie值
var chosen = $(‘#choose option[value=”‘+cityChosen+’”]‘); //绑定cookie中保存的那个城市所对应的选项
chosen.attr(‘selected’,true); //使此选项变为选定状态
$(“#output”).removeClass().addClass(cityChosen).html(“你上次选择了
“ + chosen.text()); //为id为output的div添加class为相应城市名称的类,以便在css中分别定义样式,并输出相应文字
}
//以下部分是用户对下拉菜单进行选取的时候,将设置存到Cookie,并对相应内容部分进行设定
$(“#choose”).change(function(){
var selected = $(“#choose option:selected”); //浏览者选中一个选项
var output = “”;
if(selected.val() != 0){ //如果选项的值不为0
setCookie(‘citychosen’,selected.val(),365); //将被选中选项的value值存在名为citychosen的cookie里面,有效期一年
output = “你这次选择了
“ + selected.text(); //设定output中的内容
}
$(“#output”).removeClass().addClass(selected.val()).html(output); //在id为output的div里面输出相应的内容
});
});

想要效果看得更清楚明白一点,写了一点点小CSS:

*{ margin:0; padding:0;}
body{ font:24px Verdana, Geneva, sans-serif; margin:100px;}
#output{ color:#fff; margin:20px 0; padding:50px; height:200px; width:200px;}
.default{ background:#CCC;}
.beijing{background:red;}
.shanghai{background:blue;}
.wuhan{background:orange;}
.shenzhen{background:plum;}

它们整合起来以后,大概就是如下代码了:

//<![CDATA[
$(function(){
var cityChosen = getCookie(‘citychosen’);
if(cityChosen!=null && cityChosen!=’’){
var chosen = $(‘#choose option[value=”‘+cityChosen+’”]‘);
chosen.attr(‘selected’,true);
$(“#output”).removeClass().addClass(cityChosen).html(“你上次选择了
“ + chosen.text());
}
$(“#choose”).change(function(){
var selected = $(“#choose option:selected”);
var output = “”;
if(selected.val() != 0){
setCookie(‘citychosen’,selected.val(),365);
output = “你这次选择了
“ + selected.text();
}
$(“#output”).removeClass().addClass(selected.val()).html(output);
});
});
//以下是用来处理Cookies的函数
function setCookie(name,value,days) {
if (days) {
var date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
var expires = “; expires=”+date.toGMTString();
}
else var expires = “”;
document.cookie = name+”=”+value+expires+”; path=/“;
}
function getCookie(name) {
var nameEQ = name + “=”;
var ca = document.cookie.split(‘;’);
for(var i=0;i < ca.length;i++) {
var c = ca[i];
while (c.charAt(0)==’ ‘) c = c.substring(1,c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
}
return null;
}
function dropCookie(name) {
createCookie(name,””,-1);
}
//]]>
选择表单

请选择城市
北京
上海
武汉
深圳

效果演示可以看这个:Demo PS:Chrome的安全工作做得可真够彻底的,本地文件居然不可以操作Cookies,害我测试了好久..

CMS并不是一种离我们遥远的东西,从字面上(Content Management System)就可以知道,他只是一个用来管理网页内容的东东而已,比如我现在所使用的Wordpress就是其中的一种,这里我要介绍的是一个核心程序2K不到,即便加上所有示例文件和模板打包起来也才442K的CMS系统,他的名字叫做 CMS.txt 。 使用起来也很简单,根目录的index.php是核心文件基本不用修改,CMS.txt是配置文件,用来管理网站的结构,内有两个文件夹pages和thems,前者用来存放内容,后者存放模板,如果你只是要发布一些内容的话,只需要动配置文件和pages文件夹里的内容就可以了。 如此简洁的东东,最适合用来制作内容不多的小网站了。 废话不多说,马上做了一个,有兴趣的可以到这里看看,以下是截图: Photobucket PS:安装和使用CMS.txt需要PHP以及mod_rewrite组件的支持(一般的PHP空间服务商都会提供此功能)。

绝对是史上最蛋疼的恐怖电影,瓢更(调羹,汤匙)也能成为恐怖武器,有视频有真相。 由于sina的视频挂件即便没有开始播放也会自己缓冲,所以对其设置了首页不可见..

2012 昨天趁半价去看了一把期待已久的2012,感觉挺不错,没有辜负我的希望和票价,虽然剧情方面有点单薄,但特效和主题上的精彩弥补了这个不足,毕竟是商业片嘛,想像文艺片那么抒情是不大现实的。 看完感想如下(不喜欢剧透的人可以关闭本页等看完电影以后再来看,呵呵): 1. 片子一开头就是印度人发现了事情的走向,这个我怀疑是不是受了Heroes等美剧的影响,怎么只要是科学家就得是Mohinder呢? 2. 离婚的父母一定得在最后复婚吗?后爹就真的没一个好下场? 3. 美国总统非得都去找个黑人演才像。对意大利总理的描述有点不理解,贝努斯科尼那秃驴真有那么虔诚吗? 4. 演员当政客是信不过的,因为他是个演员,台词都是骗人的; 5. 看完奥运会,人们都相信中国能办成任何他们不能想象的事情了吧,可惜中国人这么多,还要和人口同样众多的俄罗斯和日本共一艘船,实在不公平。 6. 有特殊才能的人总是在帮助完别人以后自己死掉了,特别是会开飞机的; 7. 到后面有点蛇尾了,虽然方舟们还算壮观,可也不大震撼了,原以为人类的最后救命稻草是巨无霸一类的东西,没曾想是这么一个不能飞而且前面还是只有一层挡风玻璃后门用个电线就可以缠住不能关后门关不上就无法启动引擎的脆弱玩意儿,还比较小; 8. 死了这么多人,应该是不用再计划生育了,看样子新大陆比现在的总土地面积少了不少,不知道房价怎么样?最后那一点,让人充满遐想啊;所幸地球在这个灾难以后还能住,不像星际迷航里面直接变黑洞了,或者是像Wall·E那样几百年不能住; 9. 听说要拍续集2013,还是个美剧,不知道会是个什么样子.. 10. 还是忍不住加上了这一条,整个电影里都没有出现中国领导人的身影,却有很多Lama,不知道制片商居心何在? 总之这是个好片子,有兴趣就不应该等DVD,至少趁半价去看看吧,不像看变2那么亏.. 另: 如果你在11月13日之前就已经在电脑上下载到了你以为是《2012》电影的清晰版,那我可以肯定的告诉你那是山寨烂片《2012:Doomsday》;而这一部《2012》是09年11月上映的新作,Roland Emmerich自《后天》《独立日》《哥斯拉》后的又一部灾难大片。请千万不要搞错了。

从去年就开始关注的一个电影,2012,总算是要上映了,有些人一定会说你已经看过了,还是一部烂片,其实那是一部山寨的在豆瓣上只有3.3分的可怜电影。而我要说的,是这部貌似是拍摄了《后天》的导演Roland Emmerich的最新力作。 片子还没上映(貌似香港是11月12日,大陆也不会远吧),不知道国内版本会不会被阉割呢?先看个预告片吧: