03/23
2015
可以无压力用在基于WordPress原生评论上。
<script type="text/javascript"> var yanwenziDiv=document.createElement('div'); yanwenziDiv.id='ywz-wrapper'; yanwenziDiv.innerHTML="<br /> <a class=\"ywzbutton ds-toolbar-button\" id=\"ywzbutton\">颜文字</a> <br /> <div class=\"biaoqing_box\"> <a>(⌒▽⌒)</a><a>( ̄▽ ̄)</a><a>(=・ω・=)</a><a>(`・ω・´)</a><a>(〜 ̄△ ̄)〜</a><a>(・∀・)</a><a>(°∀°)ノ</a><a>( ̄3 ̄)</a><a>╮( ̄▽ ̄)╭</a><a>( ´_ゝ`)</a><a>←_←</a><a>→_→</a><a>(&lt;_&lt;)</a><a>(&gt;_&gt;)</a><a>(;¬_¬)</a><a>(\"▔□▔)/</a><a>(゚Д゚≡゚д゚)!?</a><a>Σ(゚д゚;)</a><a>Σ(  ̄□ ̄||)</a><a>(´;ω;`)</a><a>(/TДT)/</a><a>(^・ω・^ )</a><a>(。・ω・。)</a><a>(● ̄(エ) ̄●)</a><a>ε=ε=(ノ≧∇≦)ノ</a><a>(´・_・`)</a><a>(-_-#)</a><a>( ̄へ ̄)</a><a>( ̄ε(# ̄) Σ</a><a>ヽ(`Д´)ノ</a><a>(╯°口°)╯(┴—┴</a><a>(#-_-)┯━┯</a><a>_(:3」∠)_</a> </div> <br /> "; document.getElementsByClassName('comment-form-comment')[0].appendChild(yanwenziDiv); var commentArea=document.getElementById("comment");//获取输入框 var yanwenziBox=document.getElementsByClassName("biaoqing_box")[0];//获取颜文字容器 var yanwenziText=yanwenziBox.getElementsByTagName("a");//获取颜文字的数组 document.getElementById("ywzbutton").onmouseover=function () { yanwenziBox.style.display="block"; } for (var i = yanwenziText.length - 1; i >= 0; i--) { yanwenziText[i].addEventListener('click', function(){ commentArea.value=commentArea.value+this.innerText; yanwenziBox.style.display="none"; },false); }; </script> <style type="text/css"> .biaoqing_box{display: none;width: 650px;height:150px;background: #fff;position: absolute;} .biaoqing_box a{display: block;float: left;font-size:12px;padding: 3px 5px;margin: 5px 5px;line-height: 16px;border:none;border-radius: 5px;text-decoration: none;} .biaoqing_box a:hover{color: #fff;background: #4BCBED;} #ywzbutton{display: block;font-size: 12px; background: none !important;width: 66px !important;line-height: 15px;border:none;} </style>
js的主要功能,首先是输出颜文字部分的html代码(直接改模板也可以),输出后只显示一个颜文字的按钮。之后,鼠标经过这个按钮的时候展开颜文字区域,最后,点击颜文字会把颜文字追加到评论框内。
其实一开始我是想添加到我网站的多说评论框上的,后来失败了,改成了在WordPress默认评论上可用的,不过思路没变。
说说多说的这些破事吧:
1.因为多说没有本地模板,所以我才用了添加div节点这个麻烦的方法。
2.css无法生效,除非是生成的时候就写到标签内。
3.评论的复杂性。多说有一个textarea,但是输入的文字并不在这里面,而是添加到了一个隐藏起来的pre标签中。我们输入的文字实际上是出现在pre标签中的。然而,用js把颜文字追加到pre里面,提交的时候却提示没有输入内容。所以,可能真正提交上去的也不是pre的内容,而是一种我们所不知道的方式。
4.如果你输入一些内容然后不提交,关闭或者刷新页面,之前输入的内容还在。问题是,在页面的元素中完全找不到这些内容。所以最终我没能搞定多说,败下阵来了。
给wordpress评论框添加颜文字
-
Google Chrome 55GNU/Linux x64 -
Google Chrome 47Windows 感谢教学(づ ̄3 ̄)づ╭❤~
我刚才直接加在了clear这个主题的index.php文件中,结果报错:Cannot read property 'appendChild' of undefined;是不是不应该加在这个php文件中?