给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 分享家:Addthis中国

上网本无光驱安装操作系统的最好方式»

«给Micolog加QQ表情评论功能




最新文章

您可能会喜欢

本文共有46评论

  1. 嘎嘎,不要伤心~天降大任与你也……

  2. 你记得住我么?【引用 蓝冰】
    ——————————————————————
    我这里可以呀 难倒
    你用什么系统!!
    ie6 ie7 世界之窗 火狐 我都试过 没问题

  3. 山寨机内置浏览器

  4. 博主独创的?

  5. 记得住否~ 试试撒

  6. @各种虾米
    yes

  7. 记得住否~ 试试撒【引用 TaoGOGO】
    ——————————————————————
    可以了没?

  8. 山寨机内置浏览器 【引用 ngshaozhu】
    ——————————————————————
    太高深了 没听懂 麻烦解释一下

  9. 不是原来就有记住功能吗,在火狐下很好,ie下还会显示验证码

  10. 不是原来就有记住功能吗,在火狐下很好,ie下还会显示验证码 【引用 Qing】
    ——————————————————————
    验证码 我没设置cookie 除了验证码 其他的不用填了吧

  11. @Qing
    这个是整站的记住功能 就是到其他页面不用输入 名字,邮件,网站了

  12. @houkai 是啊,原来就是的吧,在Micolog博客发评论只用填写一次资料,以后都会自己记住的啊
    我一直就是这样

  13. 其实你可以直接用jQuery写js了,很方便
    并且默认已经引用jQuery了

  14. 哈哈,第一时间应用到我的翻新作品中,赞一下,但我觉得搏主还可以进一步扩展,即是当游客再次回来,就把资料隐藏加入一些欢迎之类的话,就Wordpress中某些效果一样!

  15. 博主的留言功能越来越丰富了,支持一下,顺便测试

  16. 其实你可以直接用jQuery写js了,很方便
    并且默认已经引用jQuery了【引用 Qing】
    ——————————————————————
    jquery的确好,就是还需要学~俺一个页面有多个Ajax时就用jqery,一个Ajax就用自己写的js Ajax class

  17. 其实你可以直接用jQuery写js了,很方便
    并且默认已经引用jQuery了【引用 Qing】
    ——————————————————————
    jquery的确好,就是还需要学~俺一个页面有多个Ajax时就用jqery,一个Ajax就用自己写的js Ajax class 【引用 TaoGOGO】
    ——————————————————————
    之前老是出问题 ,我改成过Ajax(部分)测试不太好,问题没有解决,我最后就放弃了。
    后面有时间 你帮这改改了 是呀,本来都导入库了干嘛不用!再者用ajax的代码简洁呀

  18. @houkai 是啊,原来就是的吧,在Micolog博客发评论只用填写一次资料,以后都会自己记住的啊
    我一直就是这样 【引用 Qing】
    ——————————————————————
    奇怪 我的浏览器怎么不行 每次都是在输入框中双击,在能出来个下拉选项!

  19. Firefox、Opera都能够正常记住,这个是在Chrome测试

  20. 但是用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"]

  21. @ngshaozhu
    这个没办法 大家都知道的 徐明程序本身的bug 现在好像还没人能改好 用ajax提交就会出现这个问题
    如果追求兼容性 可以用普通提交评论的方法,像默认主题那样! 徐明那个主题也会出现上述错误!但评论提交成功了,返回刷新一下就好了!

  22. 哈哈,第一时间应用到我的翻新作品中,赞一下,但我觉得搏主还可以进一步扩展,即是当游客再次回来,就把资料隐藏加入一些欢迎之类的话,就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','');">更改 &raquo;</a></span>


            <span id="hide_author_info"><a href="javascript:setStyleDisplay('author_info','none');setStyleDisplay('show_author_info','');setStyleDisplay('hide_author_info','none');">关闭 &raquo;</a></span>


        </div>


  23. 如何判断有资料, "回头客"呢?

  24. @edikud
    日志里有
    if (document.cookie != "") {
    document.getElementById('cookiesbox').checked=false;
    getCookies();
    }}

  25. safari好像不行,不过也很好啦

  26. 博主来个友情链接吧!

  27. 差点忘记了是这个
    http://edikud.appspot.com/

  28. 博主有什么方法在留言处让网址自动加上链接呢!

  29. @edikud

    日志里有

    if (document.cookie != "") {

    document.getElementById('cookiesbox').checked=false;

    getCookies();

    }}

    【引用 houkai】
    ——————————————————————
    我还是不会用。。。。

  30. 博主有什么方法在留言处让网址自动加上链接呢!【引用 edikud】
    ——————————————————————
    我觉得那样不是很好!

  31. 发现此博客的速度真快啊!

  32. 博主来个友情链接吧! 差点忘记了是这个
    http://edikud.appspot.com/【引用 edikud】
    ——————————————————————
    等文章多些,再链吧。另外最好能搞个顶级域名。我今天就申请了个cn的

  33. 发现此博客的速度真快啊!【引用 huaimao】
    ——————————————————————
    是google空间快

  34. 域名有是有「www.vefree.com」,不过用在wordpress了,用gae上怕被墙,况且又不能绑定裸域,两者间难舍难分,我倒是喜欢这里速度快,又是免费的!

  35. GG一直那么讨人爱~!

  36. 帮你点点ad

  37. @蓝冰
    谢谢 我也给你点去

  38. 明天添加以下……

  39. micolog让你变得“帅气”多了……

  40. 明天添加以下……【引用 麦子】
    ——————————————————————
    你的就不用了 wp插件的比我们这个好多了! 我们一直在向wp看齐

  41. 这个记住我默认就一直是选上的状态就好了!

  42. @麦子
    代码里是这样的 如果第一访问自动就会打上勾,如果有cookies信息 勾去会去掉 现在的问题是cookies多了就会乱 读了有但读不出来。所以勾就不见了

  43. 哦!这样啊……

  44. 很受用,已用在我的GD-cms上了,特来致谢。

  45. 经测试,是window.onload = function(){}函数上传到网上后不能正确实行,去掉这函数,直接在末尾调用login()就行

 

现在评论本文

4+10