【 tulaoshi.com - ASP 】
看到chinaASP论坛的abc code editor了吗?是不是觉得很cool? 说真的,刚见到我还以为是用别的什么语言做的控件呢,
后来才发现没有那么神秘的。前几天做一个商品bbs,客户要求支持ubb,同时也要做一个编辑器。现在我把做ubb的思路给大家讲
一下。
首先遇到的是界面问题,实际上这个很好解决,只是利用td的onmouseover、onmouseout和onmousedown来实现,具体实现方
法件下面的代码。
其次就是实现文本效果的问题,这个可以利用textRange的execCommand方法来实现。
下面我给出一个简单的例子,你可以把它存为一个html文件,直接可以运行,这个例子的功能很简单,就是把编辑框中选定的
文字变为粗体或斜体。其他功能你可以参照这个例子自己加上。
对了,先把这两个图片存下来。
file : ubb.html
<HTML
<HEAD
<TITLEubb演示</TITLE
</HEAD
<BODY
<br<br
<table width=300 cellspacing=2 cellpadding=2 border=0 bgcolor=lightgrey
<tr
<td id=tdBold onclick=doAction("Bold") onmousedown="DoDown(tdBold );" onmouseover = "On_Mouseover
(tdBold) ;" onmouseout="On_Mouseout(tdBold);"
<img src="http://img.jcwcn.com/attachment/portal/jcwcj/2005-12/10/05121001013248784.gif" width=16 height=16
</td
<td id=tdItalic onclick=doAction("Italic") onmousedown="DoDown(tdItalic);" onmouseover
= "On_Mouseover(tdItalic) ;" onmouseout="On_Mouseout(tdItalic);"
<img src="http://img.jcwcn.com/attachment/portal/jcwcj/2005-12/10/05121001013249825.gif" width=16 height=16
</td
<td width=268 </td
</tr
<tr
<td colspan=3
<iframe id=Editor name=Editor border=0 scroll=no width=300 height=200
</iframe
</td
</tr
</table
</BODY
</HTML
<script language=javascript
//initialize the iframe
Editor.document .designMode = "On" ;
Editor.document .open ;
Editor.document .write (" ") ;
Editor.document .close ;
Editor.focus ();
function On_Mouseover(thisTD)
{
thisTD.style .borderLeft = "1px solid buttonhighlight" ;
thisTD.style .borderRight = "1px solid buttonshadow";
thisTD.style .borderTop = "1px solid buttonhighlight";
thisTD.style .borderBottom = "1px solid buttonshadow";
}
function On_Mouseout(thisTD)
{
thisTD.style .borderLeft = "" ;
thisTD.style .borderRight = "";
thisTD.style .borderTop = "";
thisTD.style .borderBottom = "";
}
function DoDown(thisTD)
{
thisTD.style .borderLef