jsp不行,得用javascript,我记得有个共享的javascript源代码,等一下,我找找看。

解决方案 »

  1.   

    你只需把这个html_editor.js文件嵌入网页里即可使用。
    比如:<script src="html_editor.js"/>以下是html_editor.js文件内容,var tbEventSrcElement;
    var bInit = false;
    var tbToolbars = new Array();function btnOver() {
      if (event.srcElement.tagName != "IMG") return false;
      var image = event.srcElement;
      var element = image.parentElement;
      
      if (image.className == "ICO") {
        element.className = "BTN_OVERUP";
      } else if (image.className == "ICO_DOWN") {
        element.className = "BTN_OVERDOWN";
      }  event.cancelBubble=true;
    }function btnOut() {
      if (event.srcElement.tagName != "IMG") {
        event.cancelBubble = true;
        return false;
      }
     
      var image = event.srcElement;
      var element = image.parentElement;
      
      tbRaisedElement = null;  element.className = "BTN";
      image.classNmae = "ICO";  event.cancelBubble=true;
    }function btnDown() {
      if (event.srcElement.tagName != "IMG") {
        event.cancelBubble = true;
        event.returnValue=false;
        return false;
      }  var image = event.srcElement;
      var element = image.parentElement;  element.className = "BTN_OVERDOWN";
      image.className = "ICO_DOWN";  event.cancelBubble = true;
      event.returnValue=false;
      return false;
    }function btnUp() {
      var element, image, userOnClick, radioButtons, i;
     
      if (event.srcElement.tagName == "IMG") {
        image = event.srcElement;
        element = image.parentElement;
      } else {
        element = event.srcElement;
        image = element.children.tags("IMG")[0];
      }
      
      if ((image.className != "ICO") && (image.className != "ICO_DOWN") && (image.className != "ICO_DOWNPRESS")) return;  tbEventSrcElement = element;
      
      if (element.TBUSERONCLICK) {
        eval(element.TBUSERONCLICK + "anonymous()");
      }
      
      element.className = "BTN_OVERUP";  image.className = "ICO";
      
      event.cancelBubble=true;
      return false;
    }function TBCancelEvent() {
      event.returnValue=false;
      event.cancelBubble=true;
    }var tbContentElementObject = null;
    var tbContentElementTop = 0;
    var tbContentElementBottom = 0;
    var tbLastHeight = 0;
    var tbLastWidth = 0;function InitBtn(element) {
      element.onmouseover = btnOver;
      element.onmouseout = btnOut;
      element.onmousedown = btnDown; 
      element.onmouseup = btnUp; 
      element.ondragstart = TBCancelEvent;
      element.onselectstart = TBCancelEvent;
      element.onselect = TBCancelEvent;
      element.TBUSERONCLICK = element.onclick; // Save away the original onclick event
      element.onclick = TBCancelEvent;
       
      element.TBINITIALIZED = true;
    }function PopTB(tb) {
      var i, elements, s;  elements = tb.children;
      for (i=0; i<elements.length; i++) {
        if (elements[i].tagName == "SCRIPT" || elements[i].tagName == "!") continue;
        switch (elements[i].className) {
          case "BTN" :
            if (elements[i].TBINITIALIZED == null) InitBtn(elements[i]);
            elements[i].style.posLeft = tb.TBTOOLBARWIDTH;
            tb.TBTOOLBARWIDTH += elements[i].offsetWidth + 1; 
          break;
           
          case "GEN" :
            elements[i].style.posLeft = tb.TBTOOLBARWIDTH;
            tb.TBTOOLBARWIDTH += elements[i].offsetWidth + 1; 
          break;
                    
          case "SEP" :
            elements[i].style.posLeft = tb.TBTOOLBARWIDTH + 2;
            tb.TBTOOLBARWIDTH += 5;
          break;
        }
      }
    }function InitTB(tb) {
      var s1, tr;   tb.TBTOOLBARWIDTH = 5;
        
      PopTB(tb);
      
      tb.style.posWidth = tb.TBTOOLBARWIDTH + 4;
      tb.insertAdjacentHTML("AfterBegin", '<DIV class=tbHandleDiv style="LEFT: 3"> </DIV><DIV class=tbHandleDiv style="LEFT: 6"> </DIV>');
    }function LayoutTB() {
      var x,y,i;
      x = 0; y = 0;
      
      if (tbToolbars.length == 0) return;
      
      for (i=0; i<tbToolbars.length; i++) {
        if ((x > 0) && (x + parseInt(tbToolbars[i].TBTOOLBARWIDTH) > document.body.offsetWidth)) {
          x=0; y += tbToolbars[i].offsetHeight;
        }
      tbToolbars[i].style.left = x;
        x += parseInt(tbToolbars[i].TBTOOLBARWIDTH) + 4;
        tbToolbars[i].style.posTop = y;
      } 
      
      tbContentElementTop = y + tbToolbars[0].offsetHeight;
      
      tbContentElementObject.style.posTop = tbContentElementTop;
      tbContentElementObject.style.left = 0; 
      tbContentElementObject.style.posHeight = document.body.offsetHeight - tbContentElementBottom - tbContentElementTop;
      tbContentElementObject.style.width = document.body.offsetWidth;
      
      tbLastHeight = document.body.offsetHeight;
      tbLastWidth = document.body.offsetWidth;
    }function LayoutElem()
    {
      tbContentElementObject.style.posTop = tbContentElementTop;
      tbContentElementObject.style.left = 0; 
      tbContentElementObject.style.posHeight = document.body.offsetHeight - tbContentElementBottom - tbContentElementTop;
      tbContentElementObject.style.width = document.body.offsetWidth;
      
      tbLastHeight = document.body.offsetHeight;
      tbLastWidth = document.body.offsetWidth;
    }function document.onreadystatechange() {
      var i, s;
      
      if (document.readyState!="complete") return ;
       
      if (bInit) return;  
      bInit = true;
      
      document.body.scroll = "no";  
      for (i=0; i<document.body.all.length; i++) {
        if (document.body.all[i].className == "BAR") {
          InitTB(document.body.all[i]);
          tbToolbars[tbToolbars.length] = document.body.all[i];
        }
      }
      tbContentElementObject = document.body.all["tbContentElement"];
      LayoutTB();
      
      window.onresize = LayoutElem;  
      if (top.auto) 
        PutContents(top.text);
    }
      

  2.   

    光嵌入还不行啊用我这个:嵌入:edit.js
    /**   NewsEdit   **/function RunCom(what,opt) 
    {
      content1.focus();
      content1.document.execCommand(what, '', opt);
      content1.focus();
    }function createLink() 
    {
      content1.focus();
      content1.document.execCommand('CreateLink', true, true);
      content1.focus();
    }function foreColor() 
    {
      content1.focus();
      RunCom('ForeColor', postform.fColor[postform.fColor.selectedIndex].value);
      postform.fColor.options.value = 'color';
    }function creatTable()
    {
      content1.focus();
      var arr = showModalDialog("utilize/table.htm", "", "dialogWidth:17em; dialogHeight:12em; status:0");
      if (arr != null)
      {
        var tmp = arr.split("*");
        var row = tmp[0];
        var col = tmp[1];
        var string="<table style='WIDTH: "+tmp[2]+"px;' border="+tmp[3]+" bgcolor="+tmp[4]+" cellspacing='0' cellpadding='0'>";
        for(i=1; i<=row; i++)
        {
          string=string+"<tr>";
          for(j=1; j<=col; j++)
          {
            string=string+"<td>&nbsp;</td>";
          }
          string=string+"</tr>";
        }
        string=string+"</table>";
        content = content1.document.body.innerHTML;
        content = content+string;
        content1.document.body.innerHTML = content;
      }
      else
      { 
        content1.focus();
      }
    }function insertImage() 
    {
      content1.focus();
      var arr = window.open('utilize/upload.htm','','width=550,height=400');
      if(arr==false) return;
    }function text_clear()
    {
      content1.document.body.innerHTML = "";
      document.postform.title.value = "";
    }
    manager.
    <html>
    <head>
    <title>
    manager
    </title>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    </head>
    <body bgcolor="#ffffff">
    <form method="post" action="preview.jsp" name="postform">
    <input type="hidden" name="sort" value="add">
    <h2></h2>
    新闻标题:<br><input type="text" name="title"><br>
    新闻内容:<br>
    <img alt="剪切" src="image/cut.gif" onClick="RunCom('cut')">
    <img alt="复制" src="image/copy.gif" onClick="RunCom('copy');">
    <img alt="粘贴" src="image/paste.gif" onClick="RunCom('paste')">
    <img alt="粗体" src="image/bold.gif" onClick="RunCom('bold')">
    <img alt="斜体" src="image/italic.gif" onClick="RunCom('italic')">
    <img alt="下划线" src="image/under.gif" onClick="RunCom('underline')">
    <img alt="靠左对齐" src="image/aleft.gif" onClick="RunCom('justifyleft')">
    <img alt="居中对齐" src="image/center.gif" onClick="RunCom('justifycenter')">
    <img alt="靠右对齐" src="image/aright.gif" onClick="RunCom('justifyright')">
    <br>
    <img alt="加入超链接" src="image/wlink.gif" onClick="createLink()">
    <img alt="插入图片" src="image/img.gif" onClick="insertImage()">
    <img alt="插入表格" src="image/table.gif" onClick="creatTable()">
    <br>
    <select name="FontName" onChange="RunCom('fontname',this[this.selectedIndex].value);">
    <option value="font" selected>字 体</option>
    <option value="宋体">宋 体</option>
    <option value="楷体_GB2312">楷 体</option>
    <option value="黑体">黑 体</option>
    <option value="仿宋_GB2312">仿仿宋</option>
    <option value="新宋体">新宋体</option>
    <option value="幼圆">幼 圆</option>
    <option value="隶书">隶 书</option>
    <option value="Arial">Arial</option>
    <option value="Fixedsys">Fixedsys</option>
    <option value="System">System</option>
    <option value="Times New Roman">NewRoman</option>
    <option value="Verdana">Verdana</option>
    <option value="Wingdings">Wingdings</option>
    <option value="Kantipur">Kantipur</option>
    </select>
    <select name="FontSize" onChange="RunCom('fontsize',this[this.selectedIndex].value);">
    <option value="fontsize" selected>字 号</option>
    <option value="1">1号</option>
    <option value="2">2号</option>
    <option value="3">3号</option>
    <option value="4">4号</option>
    <option value="5">5号</option>
    <option value="6">6号</option>
    <option value="7">7号</option>
    </select>
    <select name="fColor" onChange="foreColor()">
    <option value="color"  selected>字体颜色</option>
    <option value="#000000" style="background-color: #000000"></option>
    <option value="#000080" style="background-color: #000080"></option>
    <option value="#0000ff" style="background-color: #0000ff"></option>
    <option value="#008000" style="background-color: #008000"></option>
    <option value="#008080" style="background-color: #008080"></option>
    <option value="#00ff00" style="background-color: #00ff00"></option>
    <option value="#00ffff" style="background-color: #00ffff"></option>
    <option value="#800000" style="background-color: #800000"></option>
    <option value="#800080" style="background-color: #800080"></option>
    <option value="#808080" style="background-color: #808080"></option>
    <option value="#c0c0c0" style="background-color: #c0c0c0"></option>
    <option value="#ff0000" style="background-color: #ff0000"></option>
    <option value="#ff00ff" style="background-color: #ff00ff"></option>
    <option value="#ffff00" style="background-color: #ffff00"></option>
    <option value="#ffffff" style="background-color: #ffffff"></option>
    </select>
    <br>
    <iframe id="content1">
    </iframe><br>
    <input type="hidden" value="" name="content2">
    <input type="submit" value="SUBMIT" onClick="return check_empty(this.form)">
    <input type="reset" value="RESET" onClick="text_clear()">
    </form>
    </body>
    <script language="JavaScript">
    content1.document.open();
    content1.document.write("<BODY MONOSPACE STYLE=\"font:10pt arial,sans-serif\"></body>");
    content1.document.close();
    content1.document.designMode = 'On';
    document.write("<script src=\"edit.js\"><"+"/script>");function check_empty(form)
    {
      var content = content1.document.body.innerHTML;
      var title = form.title.value;
      if(content=="" || title=="")
      {
        alert("请填写新闻标题或新闻内容!");
        return false;
      }
      else
      {
        form.content2.value = content;
        return true;
      }
    }
    </script>
    </html>
      

  3.   

    看看这个
    http://www.jfinfo.com/room/admin/editor.asp
    再看看这个
    http://www.csdn.net/develop/article/15/15214.shtm