给留言框添加表情js
<script type="text/javascript">
<!--
//函数 addtext
//用途 将参数s的内容作为字符串添加到评论框中。
function addtext(s){
//考虑到页面上只会有一个评论框存在,因此直接使用getElementsByTagName取得
//得到评论框对象后,将s添加到评论框内容的末尾。
document.getElementsByTagName("textarea")[0].value = document.getElementsByTagName("textarea")[0].value + s
}
//开始主程序
//判断是否在单篇日志的页面,判断方法是页面中是否有验证码
if(document.getElementById("authcode_td1")){
//判断成功
var i, j; //循环计数
//自定义参数之一:
//用于指定图标文件地址的url路径,到最后一层文件夹为止
//也就是说这个url后边就是****.gif的图标文件了。
//可自定义。
var urlBase = "http://booker.yculblog.com/images/smiley/1/";
//自定义参数之二:
//表情图片文件的文件名。紧接着上一参数,不包括点号和扩展名。
//注意:为了缩短代码长度,只考虑这些表情是来自同一地址的同一目录。
//可自定义。
var picName = new Array("1", "2", "3", "4", "5", "6", "7", "8", "10", "11", "19", "20");
//自定义参数之三:
//数组,用于保存图标对应的代码,可自定义。
var smileyCode = new Array("[:-)]", "[:-(]", "[XD]", "[;-)]", "[*^_^*]", "[:-O]", "[o_O]", "[T_T]", "[-_-b]", "[:-D]", "[#_#]", "[^.^]");
//自定义参数之四:
//这个最难,虽然说上边都很好自定义。但这个就有难度了。
//此参数为一个正则表达式数组。用于对应上边的表情代码。
//可自定义。
var smileyReg = new Array(/\[:-\)\]/g, /\[:-\(\]/g, /\[XD\]/g, /\[;-\)\]/g, /\[\*\^_\^\*\]/g, /\[:-O\]/g, /\[o_O\]/g, /\[T_T\]/g, /\[-_-b\]/g, /\[:-D\]/g, /\[#_#\]/g, /\[\^\.\^\]/g);
//定义表情图表列表
var s2 ="<br />";
//根据图标的数量,用循环将所有图表的html代码加在一起
for(i=0; i < picName.length; i++){
//其中有定义了鼠标指针为手,加入了点击事件。
//点击事件调用最初定义的函数addtext
s2 = s2 + "<img src='" + urlBase+picName[i] + ".gif' alt='' style='cursor:pointer;' onclick='addtext(\"" + smileyCode[i] + "\");' />";
}
//定位
//获得当前脚本以前的html代码中的所有的input对象
var inputs = document.getElementsByTagName("input");
var td;//用于保存“不公开”选框外边的td对象
for(i=0; i < inputs.length; i++){
//如果该input对象的name属性为"is_private"
//则就是我们要找的,取得其parentNode,也就是那个td对象
//中止循环
if(inputs[i].getAttribute("name") == "is_private"){
td = inputs[i].parentNode;
break;
}
}
//如果找到该td
if(td){
//取得该td外的tr对象
var tr = td.parentNode;
//将上边生成的表情图标列表添加到复选框的后边(有换行)
td.innerHTML= td.innerHTML + s2;
//将"不公开"三个字所在的表格设为纵向顶端对齐
tr.getElementsByTagName("td")[0].setAttribute("valign", "top");
//开始对已有评论中的表情代码进行替换
//由代码(如[:-)])到图片的html代码
//取得所有的blockquote,因此,也许存在误杀(正文中的blockquote)
var blocks = document.getElementsByTagName("blockquote");
//二重循环,搜索每个blockquote中的每种表情代码,如果有,就替换。
for(i=0; i < blocks.length; i++){
for(j=0; j < smileyReg.length; j++)
blocks[i].innerHTML = blocks[i].innerHTML.replace( smileyReg[j], "<img src='" + urlBase + picName[j] + ".gif' alt='' />" );
}
}
}
//-->
</script>