| ||
|
无心石 @ 2007-04-07 23:05
本来,这段代码可以放在“模版完全DIY”的HTML代码中的,但是这样有一个问题,就是当更换模板的时候,所有代码会重置。所以我认为把这些代码作为一个个的自定义的HTML模块来添加上去会更好一些,这样不但易于管理,而且就算更换模板也不会影响效果。
首先,在管理中选择“模块”,然后选择添加“自写HTML代码”,添加上以下的代码: <script> function addtext(s){ document.getElementsByTagName("textarea")[0].value = document.getElementsByTagName("textarea")[0].value + s } var urlBase,picName,smileyCode,smileyReg; var imgbr=9; //对于IE6需设置每行排列的图标数目 function addFeelingIcon() { if(document.forms["replyForm"]){ var i, j; urlBase = "http://sta.yculblog.com/images/smiley/1/"; picName = new Array("1", "2", "3", "4", "5", "6", "7", "8", "10", "11", "19", "20"); smileyCode = new Array("[:-)]", "[:-(]", "[XD]", "[;-)]", "[*^_^*]", "[:-O]", "[o_O]", "[T_T]", "[-_-b]", "[:-D]", "[#_#]", "[^.^]"); 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=""; for(i=0; i < picName.length; i++){ s2 += "<img src='" + urlBase+picName[i] + ".gif' alt='' style='cursor:pointer;' onclick='addtext(\"" + smileyCode[i] + "\");' />"; if ((i+1)%imgbr==0) { if (navigator.appVersion.indexOf("MSIE") != -1) s2 +="<br />" } } var feeltr=document.forms["replyForm"].getElementsByTagName("table")[1].insertRow(3); var feelth=feeltr.appendChild(document.createElement("th")); feelth.innerHTML="表情"; var feeltd=feeltr.appendChild(document.createElement("td")); feeltd.innerHTML=s2; feeltd.id="feelimg"; var reply_content= document.getElementById("content").getElementsByTagName("p"); for(i=0; i < reply_content.length; i++){ for(j=0; j < smileyReg.length; j++) reply_content[i].innerHTML = reply_content[i].innerHTML.replace( smileyReg[j], "<img src='" + urlBase + picName[j] + ".gif' alt='' />" ); } } } addFeelingIcon(); </script> <style id="feelimgcss"> #feelimg { padding-left:10px; } #feelimg img { background:url(""); border:0; margin:0; padding:0 1px; } </style> 这段代码,我相信大家应该都相当的熟悉了,这是石头兔版权所有的那个添加表情图标的代码,我把它稍微修改了一下,使它在新模板下可用。这里要注意的地方有2个: 1 ,<style id="feelimgcss">这个标签后面的是表情图标的样式,我是觉得原来的样式不太适合,所以修改了一下。也就是说,这个标签一直到结尾的 </style>标签之间的部分都是可选项,大家可根据自己的实际需要修改。 2,代码中间有一句: “var imgbr=9; //对于IE6需设置每行排列的图标数目” 意思是说,要在IE6下面取得较好的显示效果,你需要根据自己的模板和添加的图标的实际情况,来确定你每行要放多少个图标。这个设置只在IE6下面生效。在FX下,图标会自动换行,无需设置这个值。而IE7我并未测试过,希望各位能告诉我在IE7下面的情况。 以上是第一步,但是如果我们就这样保存的话,版面上会出现一个内容空白,名为“自写HTML代码”的模块,这显然有碍观瞻,所以我们需要修改一下这个模块的名字,把“自写HTML代码”改名为“hideXXXXX”,这个XXXXX随便你写什么都可以,但是最前面一定要有hide这个单词,至于为什么要这样后面再说。我的模块的名字就叫做“hide添加表情图标”,仅供参考。然后就可以按保存了。 然后,再次添加另一块新的“自写HTML代码”,并添加以下的代码: <script> var h2_all=document.getElementById("sidebar").getElementsByTagName("h2"); for (var i=0;i<h2_all.length;i++) { if (h2_all[i].innerHTML.substr(0,4)=="hide"){ h2_all[i].parentNode.style.display="none"; } } </script> 这个模块的作用,就是把所有名字前面为“hide”的模块隐藏起来,就不会影响美观了。所以,必须注意的是,这个模块务必要将它排在所有模块的最后,否则它就发挥不出作用。另外,建议把所有这类型的模块放在一起,便于日后管理。最后,你可以把这个模块改名为“hide将模块隐藏的代码”,然后保存。 代码在IE6和FX2下通过,如果在使用上遇到什么问题,请在此留言,或在新模板小组中我所发的帖子留言也可以。 4.15更新:由于博友反映,在IE7下表情图标不能自动换行的问题仍然存在,所以我修改了代码,现在只要你设置了每行显示的图标数目,在IE7下也可以正常换行了。 4.19更新:由于小歪作出了不可理喻的代码修改,所以我也只好再次修改了一下代码。现在在IE下面也可以正常显示了。
曾经的这一天...
相关文章:
|
| 最新评论 (点击这里查看更早的所有评论...) | |||
| |||
| |||
| |||
| |||
| |||
| |||
| |||
| |||
| |||
| |||