程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> ASP編程 >> ASP技巧 >> 自己動手,結合javascript和dhtml做一個ubb編輯器

自己動手,結合javascript和dhtml做一個ubb編輯器

編輯:ASP技巧

看到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='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='italic.gif' width=16 height=16 >
       </td>
       <td width=268>&nbsp;</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 ("&nbsp;") ;
  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>    

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved