给Micolog增加评论用户信息记忆功能
Micolog在firefox和chrome下可以实现评论用户信息cookies载入功能,IE下就失效了
现在来为ie增加写入cookie和读取cookie的功能,以下代码也适合firefox和chrome。
第一种方法
给主题文件的comments.html增加js代码
<script>
if (document.cookie != "") {
document.getElementById('cookiesbox').checked=false;
getCookies();
}function login()
{
var author=document.getElementById('author').value;
var email=document.getElementById('email').value;
var url=document.getElementById('url').value;
if (document.getElementById('cookiesbox').checked) {
setCookies(author, email, url);
}
}
function setCookies(author, email, url) {
var Then = new Date();
Then.setTime(Then.getTime() + 365 * 24 * 60 * 60 * 1000);
document.cookie = "author~" + author + "&#emai~" + email +"&#url~"+ url + "&#;expires~" + Then.toGMTString();
//alert(document.cookie);
}function getCookies() {
var cookieString = new String(document.cookie);
if (cookieString.indexOf("&#") > 0) {
var cooke = cookieString.split("&#");
document.getElementById("author").value = cooke[0].substring(cooke[0].indexOf("~") + 1, cooke[0].length);
document.getElementById("email").value = cooke[1].substring(cooke[1].indexOf("~") + 1, cooke[1].length);
document.getElementById("url").value = cooke[2].substring(cooke[2].indexOf("~") + 1, cooke[2].length);
}
}</script>
改<input name="submit" type="submit" id="submit" value="提交留言" onClick="login();"/>此行,增加红色部分。
再在其后 增加
<INPUT TYPE="checkbox" NAME="cookiesbox" id="cookiesbox" checked="ture"/><label for="cookiesbox">记住我</label>
这样可以实现在刷新或者打开其他页面时,保留评论用户信息。
第二种方法
创建cookies.js在 comment.html中加
<input name="submit" type="submit" id="submit" value="提交留言" onClick="login();"/>
<!--[if IE]><SCRIPT src="http://hou-kai.appspot.com/themes/Devart/cookies.js" type=text/javascript></SCRIPT><![endif]-->
注意input在调用cookies.js之前
//cookies.js
function setcookie(name,value){
var Days = 30;
var exp = new Date();
exp.setTime(exp.getTime() + Days*24*60*60*1000);
document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString();
}
function getcookie(name){
var arr = document.cookie.match(new RegExp("(^| )"+name+"=([^;]*)(;|$)"));
if(arr != null){return unescape(arr[2]);} else {return "";}
}
function login(){
setcookie("author",document.getElementById('author').value);
setcookie("email",document.getElementById('email').value);
setcookie("url",document.getElementById('url').value);
}
function loadcookies(){
document.getElementById("author").value = getcookie("author");
document.getElementById("email").value = getcookie("email");
document.getElementById("url").value = getcookie("url");
}if (document.cookie != "") {loadcookies();}
部分js参考百度博客
本文永久链接 http://www.houkai.com/2009/07/31/micolog-js-cookie.html转载注明来自 HOUKAI.COM

你记得住我么?【引用 蓝冰】
——————————————————————
我这里可以呀 难倒
你用什么系统!!
ie6 ie7 世界之窗 火狐 我都试过 没问题
山寨机内置浏览器
博主独创的?
记得住否~
试试撒
@各种虾米
yes
记得住否~
试试撒【引用 TaoGOGO】
——————————————————————
可以了没?
山寨机内置浏览器
【引用 ngshaozhu】

——————————————————————
太高深了 没听懂 麻烦解释一下
不是原来就有记住功能吗,在火狐下很好,ie下还会显示验证码
不是原来就有记住功能吗,在火狐下很好,ie下还会显示验证码
【引用 Qing】

——————————————————————
验证码 我没设置cookie 除了验证码 其他的不用填了吧
@Qing
这个是整站的记住功能 就是到其他页面不用输入 名字,邮件,网站了
@houkai 是啊,原来就是的吧,在Micolog博客发评论只用填写一次资料,以后都会自己记住的啊
我一直就是这样
其实你可以直接用jQuery写js了,很方便
并且默认已经引用jQuery了
哈哈,第一时间应用到我的翻新作品中,赞一下,但我觉得搏主还可以进一步扩展,即是当游客再次回来,就把资料隐藏加入一些欢迎之类的话,就Wordpress中某些效果一样!
博主的留言功能越来越丰富了,支持一下,顺便测试
其实你可以直接用jQuery写js了,很方便
并且默认已经引用jQuery了【引用 Qing】
——————————————————————
jquery的确好,就是还需要学~俺一个页面有多个Ajax时就用jqery,一个Ajax就用自己写的js Ajax class
其实你可以直接用jQuery写js了,很方便
【引用 TaoGOGO】
是呀,本来都导入库了干嘛不用!再者用ajax的代码简洁呀
并且默认已经引用jQuery了【引用 Qing】
——————————————————————
jquery的确好,就是还需要学~俺一个页面有多个Ajax时就用jqery,一个Ajax就用自己写的js Ajax class
——————————————————————
之前老是出问题 ,我改成过Ajax(部分)测试不太好,问题没有解决,我最后就放弃了。
后面有时间 你帮这改改了
@houkai 是啊,原来就是的吧,在Micolog博客发评论只用填写一次资料,以后都会自己记住的啊
【引用 Qing】
我一直就是这样
——————————————————————
奇怪 我的浏览器怎么不行 每次都是在输入框中双击,在能出来个下拉选项!
Firefox、Opera都能够正常记住,这个是在Chrome测试
但是用Chrome提交后浏览器就出现了错误:
[true, "\t\t\t
\n\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\n\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tngshaozhu\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t2009-08-01 at 12:49\n\n\t\t\t\t\tFirefox\u3001Opera\u90fd\u80fd\u591f\u6b63\u5e38\u8bb0\u4f4f\uff0c\u8fd9\u4e2a\u662f\u5728Chrome\u6d4b\u8bd5 \n\n\t\t\t\t\n\t\t\t"]
@ngshaozhu
这个没办法 大家都知道的 徐明程序本身的bug 现在好像还没人能改好 用ajax提交就会出现这个问题
如果追求兼容性 可以用普通提交评论的方法,像默认主题那样! 徐明那个主题也会出现上述错误!但评论提交成功了,返回刷新一下就好了!
哈哈,第一时间应用到我的翻新作品中,赞一下,但我觉得搏主还可以进一步扩展,即是当游客再次回来,就把资料隐藏加入一些欢迎之类的话,就Wordpress中某些效果一样!【引用 eDIKUD】
——————————————————————
我想过这样,后来还是习惯看见自己的信息,放心些
那段代码大概是这样的 你可以参照一下
<script type="text/javascript">function setStyleDisplay(id, status){document.getElementById(id).style.display = status;}</script>
<div class="form_row small">
欢迎回来 <strong>hike</strong>. <span id="show_author_info"><a href="javascript:setStyleDisplay('author_info','');setStyleDisplay('show_author_info','none');setStyleDisplay('hide_author_info','');">更改 »</a></span>
<span id="hide_author_info"><a href="javascript:setStyleDisplay('author_info','none');setStyleDisplay('show_author_info','');setStyleDisplay('hide_author_info','none');">关闭 »</a></span>
</div>
如何判断有资料,
"回头客"呢?
@edikud
日志里有
if (document.cookie != "") {
document.getElementById('cookiesbox').checked=false;
getCookies();
}}
safari好像不行,不过也很好啦
博主来个友情链接吧!
差点忘记了是这个
http://edikud.appspot.com/
博主有什么方法在留言处让网址自动加上链接呢!
@edikud
日志里有
if (document.cookie != "") {
document.getElementById('cookiesbox').checked=false;
getCookies();
}}
【引用 houkai】
——————————————————————
我还是不会用。。。。
博主有什么方法在留言处让网址自动加上链接呢!【引用 edikud】
——————————————————————
我觉得那样不是很好!
发现此博客的速度真快啊!
博主来个友情链接吧! 差点忘记了是这个
http://edikud.appspot.com/【引用 edikud】
——————————————————————
等文章多些,再链吧。另外最好能搞个顶级域名。我今天就申请了个cn的
发现此博客的速度真快啊!【引用 huaimao】
是google空间快 
——————————————————————
域名有是有「www.vefree.com」,不过用在wordpress了,用gae上怕被墙,况且又不能绑定裸域,两者间难舍难分,我倒是喜欢这里速度快,又是免费的!
GG一直那么讨人爱~!
帮你点点ad
@蓝冰
谢谢 我也给你点去
明天添加以下……
micolog让你变得“帅气”多了……
明天添加以下……【引用 麦子】
我们一直在向wp看齐 
——————————————————————
你的就不用了 wp插件的比我们这个好多了!
这个记住我默认就一直是选上的状态就好了!
@麦子
代码里是这样的 如果第一访问自动就会打上勾,如果有cookies信息 勾去会去掉 现在的问题是cookies多了就会乱 读了有但读不出来。所以勾就不见了
哦!这样啊……
很受用,已用在我的GD-cms上了,特来致谢。
经测试,是window.onload = function(){}函数上传到网上后不能正确实行,去掉这函数,直接在末尾调用login()就行
@GD-cms
谢谢 已改!