WEB开发网
开发学院WEB开发ASP 自己动手,结合javascript和dhtml做一个ubb编辑器... 阅读

自己动手,结合javascript和dhtml做一个ubb编辑器

 2000-08-06 10:08:43 来源:WEB开发网   
核心提示:看到chinaasp论坛的abc code editor了吗?是不是觉得很cool? 说真的,刚见到我还以为是用别的什么语言做的控件呢,自己动手,结合javascript和dhtml做一个ubb编辑器,后来才发现没有那么神秘的,前几天做一个商品bbs,其他功能你可以参照这个例子自己加上,对了,客户要求支持ubb,同时也
看到chinaasp论坛的abc code editor了吗?是不是觉得很cool? 说真的,刚见到我还以为是用别的什么语言做的控件呢,
后来才发现没有那么神秘的。前几天做一个商品bbs,客户要求支持ubb,同时也要做一个编辑器。现在我把做ubb的思路给大家讲
一下。
  首先遇到的是界面问题,实际上这个很好解决,只是利用td的onmouSEOver、onmouseout和onmousedown来实现,具体实现方
法件下面的代码。
  其次就是实现文本效果的问题,这个可以利用textRange的execCommand方法来实现。

  下面我给出一个简单的例子,你可以把它存为一个html文件,直接可以运行,这个例子的功能很简单,就是把编辑框中选定的
文字变为粗体或斜体。其他功能你可以参照这个例子自己加上。
对了,先把这两个图片存下来。

file : ubb.html

<HTML>
<HEAD>

<TITLE>ubb演示</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://www.cncms.com/bold.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://www.cncms.com/italic.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 .borderLeft  = "1px solid buttonshadow";
    thisTD.style .borderRight = "1px solid buttonhighlight";
    thisTD.style .borderTop  = "1px solid buttonshadow";
    thisTD.style .borderBottom = "1px solid buttonhighlight";
    thisTD.style .paddingTop  = "2px";
    thisTD.style .paddingLeft  = "2px";
    thisTD.style .paddingBottom = "0px";
    thisTD.style .paddingRight = "0px";  


  } 
  
 function doAction(str)
  {
   var m_objTextRange = Editor.document .selection.createRange();
   m_objTextRange.execCommand(str) ;
  }  
  

</script>   

Tags:自己 动手 结合

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接