切换到宽版
  • 907阅读
  • 1回复

【主题美化&增强系列】评论框的简单计数器 [复制链接]

上一主题 下一主题
 

只看楼主 倒序阅读 使用道具 0楼 发表于: 2010-10-10
— 本帖被 ralix 设置为精华(2010-10-17) —
效果如下



为什么会有这个功能?

因为WORDPRESS不限制留言字数,一旦一个页面的留言字数过多,比如有人恶意留言,达到上万字,你的页面用浏览器一打开,浏览器就会崩溃,所以此功能就是为了预防这种事的发生。


代码如下,贴到页面评论框以下部分位置(一般加在footer的js文件中就行,代码会自动运行)


  1. <!-- 留言字数限制 开始 -->
  2. <script type="text/javascript">
  3. (function(){
  4.     var f=0,t=0;
  5.     var comform=document.getElementById("commentform")||0;
  6.     if(comform){
  7.         var combox=document.getElementById("comment");
  8.         var countbox=document.createElement("div");
  9.         countbox.innerHTML='You input <i id="counttext">0</i> characters.';
  10.         combox.parentNode.appendChild(countbox);
  11.         var counttext=document.getElementById("counttext");
  12.         with(counttext.style){
  13.             fontSize="35px";
  14.             color="#aaa";
  15.             //可在此追加样式控制,或在css中通过#counttext #countbox 定义相关样式
  16.         }
  17.         countbox.id="countbox";
  18.         comform.appendChild(countbox);
  19.         function count(){
  20.             counttext.innerHTML=combox.value.length;
  21.         //字数限制开始
  22.             if(combox.value.length>1000){        //这里是限制评论字数,超过限定字数会弹出提醒,并将计数器颜色设置为红色,将提交按钮设为不可用。需要的可以去掉注释
  23.                 document.getElementById("submit").disabled = true;
  24.                 counttext.style.color="#DD0000";
  25.                 if(!t){
  26.                     alert("You have input too many characters, please reduce something!");t=1;
  27.                     f=setInterval(count, 200);
  28.                 }
  29.             }else{
  30.                 document.getElementById("submit").disabled = false;
  31.                 counttext.style.color="#aaa";
  32.             }
  33.         //字数限制结束    
  34.         }
  35.         combox.onclick=function(){
  36.             f=setInterval(count, 200);
  37.         }
  38.         combox.onmouseout=function(){
  39.             if(f)clearInterval(f);//清除计时器
  40.         }
  41.     }
  42. })();
  43. </script>
  44. <!-- 留言字数限制 结束 -->


你并不需要改动你的comment.php模板,只需在css中通过


  1. #counttext{
  2. color:#AAAAAA;
  3. font-family:Lucida,Arial,Helvetica,宋体,sans-serif;
  4. line-height:38px;
  5. }
  6. #countbox{
  7.     color:#AAAAAA;
  8.     float:right;
  9.     font-family:Lucida,Arial,Helvetica,宋体,sans-serif;
  10.     line-height:38px;
  11.     margin-right:40px;
  12.     margin-top:0;
  13.     padding:0;
  14. }


只看该作者 1楼 发表于: 04-03
嗯学习啦虽然一大堆的代码看不懂
快速回复
限100 字节
 
上一个 下一个