我的简易HTML在线编辑器

本文介绍了一款自制的HTML在线编辑器,具备多种文本编辑功能,如字体样式调整、插入图片与视频等,并详细记录了实现过程及所用技术。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

年前年后一直忙得没完没了,这篇关于自己做的简单功能的html在线编辑器一直想写,直到今天才有机会,以前都是直接把网络上的拿来嵌在iframe中,好用自然不说,版权可就要谨慎了,这次只涉及到几个简单的功能,于是自己试着做了个简单功能的,查了很多资料,也试了很多次,写下总结,就当为以后改进使用留份资料参考,同时我也将继续改进。

添加文章时可以使用如下方式(编辑时必须拆开使用)
function document.onreadystatechange()
{
 HtmlEdit.document.designMode = "On"
}
document.onreadystatechange()相当于body的onload()

//以下语句相当于打开iframe可编辑功能,每次打开时都会重新初始化iframe
HtmlEdit.document.designMode = "On"

//将焦点定位在iframe中,通过selection.createRange()来获得在iframe中选中的区域
HtmlEdit.focus();
var sel = HtmlEdit.document.selection.createRange();

对于selection.createRange()网络上使用的例子多半是
function doB(){ 
 HtmlEdit.focus(); 
 var sel = HtmlEdit.document.selection.createRange(); 
 insertHTML("<b>"+sel.text+"</b>"); 

如果只是几个功能还行,多个,难道写一堆function,直接使用DHTML中的excommand效率更高

//插入各种链接
function format(cmd,opt)
{
 textContent.document.execCommand(cmd,"",opt);
 textContent.focus();
}

在DHTML中
execCommand的解释:
Executes a command on the current document, current selection, or the given range.
bSuccess = object.execCommand(sCommand [, bUserInterface] [, vValue])

selectedIndex的解释:
selectedIndex Property :Sets or retrieves the index of the selected option in a select object


调用此函数的链接代码
       

ContractedBlock.gifExpandedBlockStart.gif
<select name="select3" ID="formatSelect"  onchange="format('FormatBlock',this[this.selectedIndex].value);this.selectedIndex=0">
        
<option selected>段落格式</option>
        
<option VALUE="&lt;P&gt;">普通</option>
        
<option VALUE="&lt;PRE&gt;">已编排格式</option>
        
<option VALUE="&lt;H1&gt;">标题一</option>
        
<option VALUE="&lt;H2&gt;">标题二</option>
        
<option VALUE="&lt;H3&gt;">标题三</option>
        
<option VALUE="&lt;H4&gt;">标题四</option>
        
<option VALUE="&lt;H5&gt;">标题五</option>
        
<option VALUE="&lt;H6&gt;">标题六</option>
        
<option VALUE="&lt;H7&gt;">标题七</option>
         
</select>
         
       
<select onchange="format('FontName',this[this.selectedIndex].value);this.selectedIndex=0">
       
<option selected>字体</option>
       
<option value="宋体">宋体</option>
       
<option value="黑体">黑体</option>
       
<option value="楷体_GB2312">楷体</option>
       
<option value="仿宋_GB2312">仿宋</option>
       
<option value="Arial">Arial</option>
       
<option value="Arial Black">Arial Black</option>
       
<option value="Arial Narrow">Arial Narrow</option>
       
<option value="Brush Script MT">Brush Script MT</option>
       
<option value="Century Gothic">Century Gothic</option>
       
<option value="Comic Sans MS">Comic Sans MS</option>
       
<option value="Courier">Courier</option>
       
<option value="Courier New">Courier New</option>
       
<option value="MS Sans Serif">MS Sans Serif</option>
       
<option value="Script">Script</option>
       
<option value="System">System</option>
       
<option value="Times New Roman">Times New Roman</option>
       
<option value="Verdana">Verdana</option>
       
<option value="Wide Latin">Wide Latin</option>
       
<option value="Wingdings">Wingdings</option>
       
</select>
        
         
<SELECT onchange="format('fontsize',this[this.selectedIndex].value);">
         
<option selected>字号</option>
         
<option value="7">一号</option>
         
<option value="6">二号</option>
         
<option value="5">三号</option>
         
<option value="4">四号</option>
         
<option value="3">五号</option>
         
<option value="2">六号</option>
         
<option value="1">七号</option>
         
</SELECT>
    
    
<href title="加粗" onclick="format('Bold')"><img src="button.bold.gif" board="0" style="cursor: hand;"></a>
    
<href title="斜体" onclick="format('Italic')"><img src="button.italic.gif" board="0" style="cursor: hand;"></a>
    
<href title="下划线" onclick="format('Underline')"><img src="button.underline.gif" board="0" style="cursor: hand;"></a>
    
<href title="字体颜色" onclick="foreColor()"><img src="button.textcolor.gif" board="0" style="cursor: hand;"></a>
    
<href title="剪切" onclick="format('Cut')"><img src="button.cut.gif" board="0" style="cursor: hand;"></a>
    
<href title="复制" onclick="format('Copy')"><img src="button.copy.gif" board="0" style="cursor: hand;"></a>
    
<href title="粘贴" onclick="format('Paste')"><img src="button.pastetext.gif" board="0" style="cursor: hand;"></a>
    
<href title="居中" onclick="format('JustifyCenter')"><img src="button.justifycenter.gif" board="0" style="cursor: hand;"></a>
    
<href title="左对齐" onclick="format('JustifyLeft')"><img src="button.justifyleft.gif" board="0" style="cursor: hand;"></a>
    
<href title="右对齐" onclick="format('JustifyRight')"><img src="button.justifyright.gif" board="0" style="cursor: hand;"></a>
    
    
<href title="插入超链接" onClick="format('CreateLink')"><img src="button.link.gif" border="0" style="cursor: hand;"></a>
    
<href title="清除链接" onClick="format('Unlink')"><img src="button.unlink.gif" border=0></a>
    
<href title="项目符号" onClick="format('InsertUnorderedList')"><img src="button.blist.gif"  border="0"   style="cursor: hand;"></a> 
      
<href title="编号" onClick="format('insertorderedlist')"><img src="button.nlist.gif"   border="0"  style="cursor: hand;"></a> 
      
<href title="回退" onClick="format('Outdent')"><img src="button.outdent.gif"  style="cursor: hand;" ></a> 
    
<href title="缩进" onClick="format('indent')"><img src="button.indent.gif"  border="0"  style="cursor: hand;"></a>
    
    
<href title="插入图片地址" onclick="pic()"><img src="button.image1.gif" board="0" style="cursor: hand;"></a>
    
<href title="插入flash" onclick="swf()"><img src="button.swf.gif" board="0" style="cursor: hand;"></a>
    
<href title="插入视频" onclick="wmv()"><img src="button.wmv.gif" board="0" style="cursor: hand;"></a>


插入字体颜色、图片、flash、视频的以另一个页面载入

ContractedBlock.gifExpandedBlockStart.gif
None.gif
None.gif
None.gif
function foreColor()
ExpandedBlockStart.gifContractedBlock.gif
dot.gif{
InBlock.gif  
InBlock.gif  
var arr = showModalDialog("selcolor.htm""""dialogWidth:18.5em; dialogHeight:17.5em; status:0");
InBlock.gif  
if (arr != null) format('forecolor', arr);
InBlock.gif  
else textContent.focus();
ExpandedBlockEnd.gif}

None.gif
None.gif
function pic()
ExpandedBlockStart.gifContractedBlock.gif
dot.gif{
InBlock.gif  
InBlock.gif  textContent.focus();
InBlock.gif  
var range = textContent.document.selection.createRange();
InBlock.gif  
var arr = showModalDialog("pic.htm""""dialogWidth:30em; dialogHeight:20em; status:0;help:0");  
ExpandedSubBlockStart.gifContractedSubBlock.gif  
if (arr != null)dot.gif{
InBlock.gif  
var ss;
InBlock.gif  ss
=arr.split("*")
InBlock.gif  a
=ss[0];
InBlock.gif  b
=ss[1];
InBlock.gif  c
=ss[2];
InBlock.gif  d
=ss[3];
InBlock.gif  e
=ss[4];
InBlock.gif  f
=ss[5];
InBlock.gif  g
=ss[6];
InBlock.gif  h
=ss[7];
InBlock.gif  i
=ss[8];
InBlock.gif  
InBlock.gif  
var str1;
InBlock.gifstr1
="<img src='"+a+"' alt='"+b+"'"
InBlock.gif
if(d.value!='')str1=str1+"width='"+d+"'"
InBlock.gif
if(e.value!='')str1=str1+"height='"+e+""
InBlock.gifstr1
=str1+" border='"+i+"' align='"+h+"' vspace='"+f+"' hspace='"+g+"'  style='"+c+"'"
InBlock.gifstr1
=str1+">"
InBlock.gif  content
=textContent.document.body.innerHTML;
InBlock.gif  content
=content+str1;
InBlock.gif   textContent.document.body.innerHTML
=content;
ExpandedSubBlockEnd.gif  }

InBlock.gif  
else textContent.focus();
ExpandedBlockEnd.gif}

None.gif
None.gif
function swf()
ExpandedBlockStart.gifContractedBlock.gif
dot.gif{
InBlock.gif  
InBlock.gif  textContent.focus();
InBlock.gif  
var range = textContent.document.selection.createRange();
InBlock.gif  
var arr = showModalDialog("flash.htm""""dialogWidth:30em; dialogHeight:10em; status:0;help:0"); 
ExpandedSubBlockStart.gifContractedSubBlock.gif  
if (arr != null)dot.gif{
InBlock.gif  
var ss;
InBlock.gif  ss
=arr.split("*")
InBlock.gif
InBlock.gif  path
=ss[0];
InBlock.gif  row
=ss[1];
InBlock.gif  col
=ss[2];
InBlock.gif  
var string;
InBlock.gifstring
="<object classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000'  codebase='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0' width="+row+" height="+col+"><param name=movie value="+path+"><param name=quality value=high><embed src="+path+" pluginspage='http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash' type='application/x-shockwave-flash' width="+row+" height="+col+"></embed></object>"
InBlock.gif  content
=textContent.document.body.innerHTML;
InBlock.gif  content
=content+string;
InBlock.gif   textContent.document.body.innerHTML
=content;
ExpandedSubBlockEnd.gif  }

InBlock.gif  
else textContent.focus();
ExpandedBlockEnd.gif}

None.gif
None.gif
function wmv()
ExpandedBlockStart.gifContractedBlock.gif
dot.gif{
InBlock.gif  
InBlock.gif  textContent.focus();
InBlock.gif  
var range = textContent.document.selection.createRange();
InBlock.gif  
var arr = showModalDialog("media.htm""""dialogWidth:30em; dialogHeight:10em; status:0;help:0");
ExpandedSubBlockStart.gifContractedSubBlock.gif  
if (arr != null)dot.gif{
InBlock.gif  
var ss;
InBlock.gif  ss
=arr.split("*")
InBlock.gif  path
=ss[0];
InBlock.gif  row
=ss[1];
InBlock.gif  col
=ss[2];
InBlock.gif  
var string;
InBlock.gifstring
="<object classid='clsid:22D6F312-B0F6-11D0-94AB-0080C74C7E95' width="+row+" height="+col+"><param name=Filename value="+path+"><param name='BufferingTime' value='5'><param name='AutoSize' value='-1'><param name='AnimationAtStart' value='-1'><param name='AllowChangeDisplaySize' value='-1'><param name='ShowPositionControls' value='0'><param name='TransparentAtStart' value='1'><param name='ShowStatusBar' value='1'></object>"
InBlock.gif  content
=textContent.document.body.innerHTML;
InBlock.gif  content
=content+string;
InBlock.gif   textContent.document.body.innerHTML
=content;
ExpandedSubBlockEnd.gif  }

InBlock.gif  
else textContent.focus();
ExpandedBlockEnd.gif}

None.gif
None.gif


//===================
//调用flash.htm页面
//===================

ContractedBlock.gifExpandedBlockStart.gif
None.gif
None.gif
None.gif
<HTML><HEAD><TITLE>FLASH</TITLE>
None.gif
<link rel="stylesheet" type="text/css" href="site.css">
None.gif
None.gif
<script language="JavaScript">
None.gif
<!--
None.gif
None.gif
function SymError()
ExpandedBlockStart.gifContractedBlock.gif
dot.gif{
InBlock.gif  
return true;
ExpandedBlockEnd.gif}

None.gif
None.gifwindow.onerror 
= SymError;
None.gif
None.gif
var SymRealWinOpen = window.open;
None.gif
None.gif
function SymWinOpen(url, name, attributes)
ExpandedBlockStart.gifContractedBlock.gif
dot.gif{
InBlock.gif  
return (new Object());
ExpandedBlockEnd.gif}

None.gif
None.gifwindow.open 
= SymWinOpen;
None.gif
None.gif
//-->
None.gif
</script>
None.gif
None.gif
<SCRIPT event=onclick for=Ok language=JavaScript>
None.gif  window.returnValue 
= path.value+"*"+selrow.value+"*"+selcol.value
None.gif  window.close();
None.gif
</SCRIPT>
None.gif
<script>
None.gif
function IsDigit()
ExpandedBlockStart.gifContractedBlock.gif
dot.gif{
InBlock.gif  
return ((event.keyCode >= 48&& (event.keyCode <= 57));
ExpandedBlockEnd.gif}

None.gif
</script>
None.gif
<BODY bgColor=menu topmargin=15 leftmargin=15 >
None.gif
<CENTER><BR>
None.gif
<table width=100%><tr><td>
None.gif
<FIELDSET align=left>
None.gif
<LEGEND align=left>插入网上FLASH动画</LEGEND>
None.gif
<TABLE >
None.gif
<TR><TD >地址:<INPUT id=path size=35 value=" http://"></td></TR>
None.gif
<TR><TD >宽度:<INPUT id=selrow ONKEYPRESS="event.returnValue=IsDigit();" value=500 size=7 maxlength="4"> &nbsp;&nbsp;高度:<INPUT id=selcol ONKEYPRESS="event.returnValue=IsDigit();" value=300 size=7 maxlength="4"></TD></TR>
None.gif 
</TABLE></fieldset></td><td width=80 align="center"><input type=submit value='   确定   ' id=Ok><br><br><input type=button value='   取消   ' onclick="window.close();"></td></tr></table>
None.gif
None.gif
<script language="JavaScript">
None.gif
<!--
None.gif
var SymRealOnLoad;
None.gif
var SymRealOnUnload;
None.gif
None.gif
function SymOnUnload()
ExpandedBlockStart.gifContractedBlock.gif
dot.gif{
InBlock.gif  window.open 
= SymWinOpen;
InBlock.gif  
if(SymRealOnUnload != null)
InBlock.gif     SymRealOnUnload();
ExpandedBlockEnd.gif}

None.gif
None.gif
function SymOnLoad()
ExpandedBlockStart.gifContractedBlock.gif
dot.gif{
InBlock.gif  
if(SymRealOnLoad != null)
InBlock.gif     SymRealOnLoad();
InBlock.gif  window.open 
= SymRealWinOpen;
InBlock.gif  SymRealOnUnload 
= window.onunload;
InBlock.gif  window.onunload 
= SymOnUnload;
ExpandedBlockEnd.gif}

None.gif
None.gifSymRealOnLoad 
= window.onload;
None.gifwindow.onload 
= SymOnLoad;
None.gif
None.gif
//-->
None.gif
</script>
None.gif
None.gif


//=============
//调用的media.htm
//============

ContractedBlock.gifExpandedBlockStart.gif
None.gif
None.gif
None.gif
<HTML><HEAD><TITLE>视频文件</TITLE>
None.gif
<link rel="stylesheet" type="text/css" href="site.css">
None.gif
None.gif
<script language="JavaScript">
None.gif
<!--
None.gif
None.gif
function SymError()
ExpandedBlockStart.gifContractedBlock.gif
dot.gif{
InBlock.gif  
return true;
ExpandedBlockEnd.gif}

None.gif
None.gifwindow.onerror 
= SymError;
None.gif
None.gif
var SymRealWinOpen = window.open;
None.gif
None.gif
function SymWinOpen(url, name, attributes)
ExpandedBlockStart.gifContractedBlock.gif
dot.gif{
InBlock.gif  
return (new Object());
ExpandedBlockEnd.gif}

None.gif
None.gifwindow.open 
= SymWinOpen;
None.gif
None.gif
//-->
None.gif
</script>
None.gif
None.gif
<SCRIPT event=onclick for=Ok language=JavaScript>
None.gif  window.returnValue 
= path.value+"*"+selrow.value+"*"+selcol.value
None.gif  window.close();
None.gif
</SCRIPT>
None.gif
<script>
None.gif
function IsDigit()
ExpandedBlockStart.gifContractedBlock.gif
dot.gif{
InBlock.gif  
return ((event.keyCode >= 48&& (event.keyCode <= 57));
ExpandedBlockEnd.gif}

None.gif
</script>
None.gif
<BODY bgColor=menu topmargin=15 leftmargin=15 >
None.gif
<CENTER><BR>
None.gif
<table width=100%><tr><td>
None.gif
<FIELDSET align=left>
None.gif
<LEGEND align=left>插入网上视频文件</LEGEND>
None.gif
<TABLE>
None.gif
<TR><TD >地址:<INPUT id=path size=35  value=" http://"></td></TR>
None.gif
<TR><TD >宽度:<INPUT id=selrow  ONKEYPRESS="event.returnValue=IsDigit();" value=500 size=7 maxlength="4"> &nbsp;&nbsp;高度:<INPUT id=selcol ONKEYPRESS="event.returnValue=IsDigit();" value=300 size=7 maxlength="4"></TD></TR>
None.gif
<TR><TD align=center>支持格式为:avi、wmv、asf</TD></TR>
None.gif 
</TABLE></fieldset></td><td width=80 align="center"><input type=submit value='   确定   ' id=Ok><br><br><input type=button value='   取消   ' onclick="window.close();"></td></tr></table>
None.gif
None.gif
None.gif
<script language="JavaScript">
None.gif
<!--
None.gif
var SymRealOnLoad;
None.gif
var SymRealOnUnload;
None.gif
None.gif
function SymOnUnload()
ExpandedBlockStart.gifContractedBlock.gif
dot.gif{
InBlock.gif  window.open 
= SymWinOpen;
InBlock.gif  
if(SymRealOnUnload != null)
InBlock.gif     SymRealOnUnload();
ExpandedBlockEnd.gif}

None.gif
None.gif
function SymOnLoad()
ExpandedBlockStart.gifContractedBlock.gif
dot.gif{
InBlock.gif  
if(SymRealOnLoad != null)
InBlock.gif     SymRealOnLoad();
InBlock.gif  window.open 
= SymRealWinOpen;
InBlock.gif  SymRealOnUnload 
= window.onunload;
InBlock.gif  window.onunload 
= SymOnUnload;
ExpandedBlockEnd.gif}

None.gif
None.gifSymRealOnLoad 
= window.onload;
None.gifwindow.onload 
= SymOnLoad;
None.gif
None.gif
//-->
None.gif
</script>
None.gif
None.gif

//==================
//调用的pic.htm
//==================

ContractedBlock.gifExpandedBlockStart.gif
None.gif<HTML><HEAD><TITLE>插入图片文件</TITLE>
None.gif
<link rel="stylesheet" type="text/css" href="site.css">
None.gif
None.gif
<script language="JavaScript">
None.gif
<!--
None.gif
None.gif
function SymError()
ExpandedBlockStart.gifContractedBlock.gif
dot.gif{
InBlock.gif  
return true;
ExpandedBlockEnd.gif}

None.gif
None.gifwindow.onerror 
= SymError;
None.gif
None.gif
var SymRealWinOpen = window.open;
None.gif
None.gif
function SymWinOpen(url, name, attributes)
ExpandedBlockStart.gifContractedBlock.gif
dot.gif{
InBlock.gif  
return (new Object());
ExpandedBlockEnd.gif}

None.gif
None.gifwindow.open 
= SymWinOpen;
None.gif
None.gif
//-->
None.gif
</script>
None.gif
None.gif
<SCRIPT event=onclick for=Ok language=JavaScript>
None.gif  window.returnValue 
= a.value+"*"+b.value+"*"+c.value+"*"+d.value+"*"+e.value+"*"+f.value+"*"+g.value+"*"+h.value+"*"+i.value
None.gif  window.close();
None.gif
</SCRIPT>
None.gif
<script>
None.gif
function IsDigit()
ExpandedBlockStart.gifContractedBlock.gif
dot.gif{
InBlock.gif  
return ((event.keyCode >= 48&& (event.keyCode <= 57));
ExpandedBlockEnd.gif}

None.gif
</script>
None.gif
None.gif
<BODY bgColor=menu topmargin=15 leftmargin=15 ><br>
None.gif
<DIV align=center>
None.gif
<table width=100%><tr><td>
None.gif
<FIELDSET align=left>
None.gif
<LEGEND align=left>输入图片参数</LEGEND>
None.gif
<table align=center>
None.gif
<tr><td>图片地址:<input id=a value='http://' size=35></td></tr><tr>
None.gif
          <td> 说明文字:
None.gif
<input id=b size=20>图片边框:<input ONKEYPRESS="event.returnValue=IsDigit();" id=i  value="0" size=2 maxlength="2"></td></tr><tr><td>
None.gif特殊效果:
<select id=c>
None.gif              
<option>不应用</option>
None.gif              
<option value="filter:Alpha(Opacity=50)">半透明效果</option>
None.gif              
<option value="filter:Alpha(Opacity=0, FinishOpacity=100, Style=1, StartX=0, StartY=0, FinishX=100, FinishY=140)">线型透明效果</option>
None.gif              
<option value="filter:Alpha(Opacity=10, FinishOpacity=100, Style=2, StartX=30, StartY=30, FinishX=200, FinishY=200)">放射透明效果</option>
None.gif              
<option value="filter:blur(add=1,direction=14,strength=15)">模糊效果</option>
None.gif              
<option value="filter:blur(add=true,direction=45,strength=30)">风动模糊效果</option>
None.gif              
<option value="filter:Wave(Add=0, Freq=60, LightStrength=1, Phase=0, Strength=3)">正弦波纹效果</option>
None.gif              
<option value="filter:gray">黑白照片效果</option>
None.gif              
<option value="filter:Chroma(Color=#FFFFFF)">白色为透明</option>
None.gif              
<option value="filter:DropShadow(Color=#999999, OffX=7, OffY=4, Positive=1)">投射阴影效果</option>
None.gif              
<option value="filter:Shadow(Color=#999999, Direction=45)">阴影效果</option>
None.gif              
<option value="filter:Glow(Color=#ff9900, Strength=5)">发光效果</option>
None.gif              
<option value="filter:flipv">垂直翻转显示</option>
None.gif              
<option value="filter:fliph">左右翻转显示</option>
None.gif              
<option value="filter:grays">降低彩色度</option>
None.gif              
<option value="filter:xray">X光照片效果</option>
None.gif              
<option value="filter:invert">底片效果</option>
None.gif            
</select>
None.gif图片位置:
<select id=h><option>默认位置<option value="left">居左<option value="right" >居右
None.gif
<option value="top">顶部<option value="middle">中部<option value="bottom">底部<option value="absmiddle">绝对居中<option value="absbottom">绝对底部<option value="baseline">基线<option value="texttop">文本顶部</select></td></tr><tr><td>
None.gif图片宽度:
<input id=d  ONKEYPRESS="event.returnValue=IsDigit();" value="200" size=4 maxlength="4">图片高度:<input id=e ONKEYPRESS="event.returnValue=IsDigit();"  value="200" size=4 maxlength="4"></td></tr><tr><td>上下间距:<input id=f  ONKEYPRESS="event.returnValue=IsDigit();" value="0" size=4 maxlength="2">左右间距:<input id=g ONKEYPRESS="event.returnValue=IsDigit();"  value="0" size=4 maxlength="2">
None.gif
</td></tr></table>
None.gif
</fieldset></td><td width=80 align="center"><input type=submit value='   确定   ' id=Ok><br><br><input type=button value='   取消   ' onclick="window.close();"></td></tr></table>
None.gif
None.gif 
None.gif
None.gif
<script language="JavaScript">
None.gif
<!--
None.gif
var SymRealOnLoad;
None.gif
var SymRealOnUnload;
None.gif
None.gif
function SymOnUnload()
ExpandedBlockStart.gifContractedBlock.gif
dot.gif{
InBlock.gif  window.open 
= SymWinOpen;
InBlock.gif  
if(SymRealOnUnload != null)
InBlock.gif     SymRealOnUnload();
ExpandedBlockEnd.gif}

None.gif
None.gif
function SymOnLoad()
ExpandedBlockStart.gifContractedBlock.gif
dot.gif{
InBlock.gif  
if(SymRealOnLoad != null)
InBlock.gif     SymRealOnLoad();
InBlock.gif  window.open 
= SymRealWinOpen;
InBlock.gif  SymRealOnUnload 
= window.onunload;
InBlock.gif  window.onunload 
= SymOnUnload;
ExpandedBlockEnd.gif}

None.gif
None.gifSymRealOnLoad 
= window.onload;
None.gifwindow.onload 
= SymOnLoad;
None.gif
None.gif
//-->
None.gif
</script>
None.gif
None.gif

//=================
//调用selectcolor.htm
//=================

ContractedBlock.gifExpandedBlockStart.gif
None.gif<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
None.gif
<HTML><HEAD><TITLE>颜色</TITLE>
None.gif
<META content="text/html; charset=gb2312" http-equiv=Content-Type>
ExpandedBlockStart.gifContractedBlock.gif
<STYLE type=text/css>TD dot.gif{
InBlock.gifFONT
-SIZE: 10.8pt
ExpandedBlockEnd.gif}

ExpandedBlockStart.gifContractedBlock.gifBODY 
dot.gif{
InBlock.gifFONT
-SIZE: 10.8pt
ExpandedBlockEnd.gif}

ExpandedBlockStart.gifContractedBlock.gifBUTTON 
dot.gif{
InBlock.gifWIDTH: 5em
ExpandedBlockEnd.gif}

None.gif
</STYLE>
None.gif
None.gif
None.gif
<script language="JavaScript">
None.gif
<!--
None.gif
None.gif
function SymError()
ExpandedBlockStart.gifContractedBlock.gif
dot.gif{
InBlock.gif  
return true;
ExpandedBlockEnd.gif}

None.gif
None.gifwindow.onerror 
= SymError;
None.gif
None.gif
var SymRealWinOpen = window.open;
None.gif
None.gif
function SymWinOpen(url, name, attributes)
ExpandedBlockStart.gifContractedBlock.gif
dot.gif{
InBlock.gif  
return (new Object());
ExpandedBlockEnd.gif}

None.gif
None.gifwindow.open 
= SymWinOpen;
None.gif
None.gif
//-->
None.gif
</script>
None.gif
None.gif
<SCRIPT language=JavaScript>
None.gif
var SelRGB = '';
None.gif
var DrRGB = '';
None.gif
var SelGRAY = '120';
None.gif
None.gif
var hexch = new Array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F');
None.gif
None.gif
function ToHex(n)
ExpandedBlockStart.gifContractedBlock.gif
dot.gifvar h, l;
InBlock.gif
InBlock.gif
= Math.round(n);
InBlock.gif
= n % 16;
InBlock.gif
= Math.floor((n / 16)) % 16;
InBlock.gif
return (hexch[h] + hexch[l]);
ExpandedBlockEnd.gif}

None.gif
None.gif
function DoColor(c, l)
ExpandedBlockStart.gifContractedBlock.gif
dot.gifvar r, g, b;
InBlock.gif
InBlock.gif
= '0x' + c.substring(13);
InBlock.gif
= '0x' + c.substring(35);
InBlock.gif
= '0x' + c.substring(57);
InBlock.gif
InBlock.gif
if(l > 120)
ExpandedSubBlockStart.gifContractedSubBlock.gif
dot.gif{
InBlock.gif
= l - 120;
InBlock.gif
InBlock.gif
= (r * (120 - l) + 255 * l) / 120;
InBlock.gif
= (g * (120 - l) + 255 * l) / 120;
InBlock.gif
= (b * (120 - l) + 255 * l) / 120;
ExpandedSubBlockEnd.gif}
else
ExpandedSubBlockStart.gifContractedSubBlock.gif
dot.gif{
InBlock.gif
= (r * l) / 120;
InBlock.gif
= (g * l) / 120;
InBlock.gif
= (b * l) / 120;
ExpandedSubBlockEnd.gif}

InBlock.gif
InBlock.gif
return '#' + ToHex(r) + ToHex(g) + ToHex(b);
ExpandedBlockEnd.gif}

None.gif
None.gif
function EndColor()
ExpandedBlockStart.gifContractedBlock.gif
dot.gifvar i;
InBlock.gif
InBlock.gif
if(DrRGB != SelRGB)
ExpandedSubBlockStart.gifContractedSubBlock.gif
dot.gif{
InBlock.gifDrRGB 
= SelRGB;
InBlock.gif
for(i = 0; i <= 30; i ++)
InBlock.gifGrayTable.rows(i).bgColor 
= DoColor(SelRGB, 240 - i * 8);
ExpandedSubBlockEnd.gif}

InBlock.gif
InBlock.gifSelColor.value 
= DoColor(RGB.innerText, GRAY.innerText);
InBlock.gifShowColor.bgColor 
= SelColor.value;
ExpandedBlockEnd.gif}

None.gif
</SCRIPT>
None.gif
None.gif
<SCRIPT event=onclick for=ColorTable language=JavaScript>
None.gifSelRGB 
= event.srcElement.bgColor;
None.gifEndColor();
None.gif
</SCRIPT>
None.gif
None.gif
<SCRIPT event=onmouseover for=ColorTable language=JavaScript>
None.gifRGB.innerText 
= event.srcElement.bgColor;
None.gifEndColor();
None.gif
</SCRIPT>
None.gif
None.gif
<SCRIPT event=onmouseout for=ColorTable language=JavaScript>
None.gifRGB.innerText 
= SelRGB;
None.gifEndColor();
None.gif
</SCRIPT>
None.gif
None.gif
<SCRIPT event=onclick for=GrayTable language=JavaScript>
None.gifSelGRAY 
= event.srcElement.title;
None.gifEndColor();
None.gif
</SCRIPT>
None.gif
None.gif
<SCRIPT event=onmouseover for=GrayTable language=JavaScript>
None.gifGRAY.innerText 
= event.srcElement.title;
None.gifEndColor();
None.gif
</SCRIPT>
None.gif
None.gif
<SCRIPT event=onmouseout for=GrayTable language=JavaScript>
None.gifGRAY.innerText 
= SelGRAY;
None.gifEndColor();
None.gif
</SCRIPT>
None.gif
None.gif
<SCRIPT event=onclick for=Ok language=JavaScript>
None.gifwindow.returnValue 
= SelColor.value;
None.gifwindow.close();
None.gif
</SCRIPT>
None.gif
None.gif
<META content="MSHTML 5.00.2920.0" name=GENERATOR></HEAD>
None.gif
<BODY bgColor=menu>
None.gif
<DIV align=center>
None.gif
<CENTER>
None.gif
<TABLE border=0 cellPadding=0 cellSpacing=10>
None.gif
<TBODY>
None.gif
<TR>
None.gif
<TD>
None.gif
<TABLE border=0 cellPadding=0 cellSpacing=0 id=ColorTable
None.gifstyle
="CURSOR: hand">
None.gif
<SCRIPT language=JavaScript>
None.gif
function wc(r, g, b, n)
ExpandedBlockStart.gifContractedBlock.gif
dot.gif{
InBlock.gif
= ((r * 16 + r) * 3 * (15 - n) + 0x80 * n) / 15;
InBlock.gif
= ((g * 16 + g) * 3 * (15 - n) + 0x80 * n) / 15;
InBlock.gif
= ((b * 16 + b) * 3 * (15 - n) + 0x80 * n) / 15;
InBlock.gif
InBlock.gifdocument.write('
<TD BGCOLOR=#' + ToHex(r) + ToHex(g) + ToHex(b) + ' height=8 width=8></TD>');
ExpandedBlockEnd.gif}

None.gif
None.gif
var cnum = new Array(100110010011001101100);
None.gif
None.gif
for(i = 0; i < 16; i ++)
ExpandedBlockStart.gifContractedBlock.gif
dot.gif{
InBlock.gifdocument.write('
<TR>');
InBlock.gif
for(j = 0; j < 30; j ++)
ExpandedSubBlockStart.gifContractedSubBlock.gif
dot.gif{
InBlock.gifn1 
= j % 5;
InBlock.gifn2 
= Math.floor(j / 5* 3;
InBlock.gifn3 
= n2 + 3;
InBlock.gif
InBlock.gifwc((cnum[n3] 
* n1 + cnum[n2] * (5 - n1)),
InBlock.gif(cnum[n3 
+ 1* n1 + cnum[n2 + 1* (5 - n1)),
InBlock.gif(cnum[n3 
+ 2* n1 + cnum[n2 + 2* (5 - n1)), i);
ExpandedSubBlockEnd.gif}

InBlock.gif
InBlock.gifdocument.writeln('
</TR>');
ExpandedBlockEnd.gif}

None.gif
</SCRIPT>
None.gif
None.gif
<TBODY></TBODY></TABLE></TD>
None.gif
<TD>
None.gif
<TABLE border=0 cellPadding=0 cellSpacing=0 id=GrayTable
None.gifstyle
="CURSOR: hand">
None.gif
<SCRIPT language=JavaScript>
None.gif
for(i = 255; i >= 0; i -= 8.5)
None.gifdocument.write('
<TR BGCOLOR=#' + ToHex(i) + ToHex(i) + ToHex(i) + '><TD TITLE=+ Math.floor(i * 16 / 17+ ' height=4 width=20></TD></TR>');
None.gif
</SCRIPT>
None.gif
None.gif
<TBODY></TBODY></TABLE></TD></TR></TBODY></TABLE></CENTER></DIV>
None.gif
<DIV align=center>
None.gif
<CENTER>
None.gif
<TABLE border=0 cellPadding=0 cellSpacing=10>
None.gif
<TBODY>
None.gif
<TR>
None.gif
<TD align=middle rowSpan=2>选中色彩
None.gif
<TABLE border=1 cellPadding=0 cellSpacing=0 height=30 id=ShowColor
None.gifwidth
=40>
None.gif
<TBODY>
None.gif
<TR>
None.gif
<TD></TD></TR></TBODY></TABLE></TD>
None.gif
<TD rowSpan=2>基色: <SPAN id=RGB></SPAN><BR>亮度: <SPAN
None.gifid
=GRAY>120</SPAN><BR>代码: <INPUT id=SelColor size=7></TD>
None.gif
<TD><BUTTON id=Ok type=submit>确定</BUTTON></TD></TR>
None.gif
<TR>
None.gif
<TD><BUTTON
None.gifonclick
=window.close();>取消</BUTTON></TD></TR></TBODY></TABLE></CENTER></DIV></BODY></HTML>
None.gif
<script language="JavaScript">
None.gif
<!--
None.gif
var SymRealOnLoad;
None.gif
var SymRealOnUnload;
None.gif
None.gif
function SymOnUnload()
ExpandedBlockStart.gifContractedBlock.gif
dot.gif{
InBlock.gif  window.open 
= SymWinOpen;
InBlock.gif  
if(SymRealOnUnload != null)
InBlock.gif     SymRealOnUnload();
ExpandedBlockEnd.gif}

None.gif
None.gif
function SymOnLoad()
ExpandedBlockStart.gifContractedBlock.gif
dot.gif{
InBlock.gif  
if(SymRealOnLoad != null)
InBlock.gif     SymRealOnLoad();
InBlock.gif  window.open 
= SymRealWinOpen;
InBlock.gif  SymRealOnUnload 
= window.onunload;
InBlock.gif  window.onunload 
= SymOnUnload;
ExpandedBlockEnd.gif}

None.gif
None.gifSymRealOnLoad 
= window.onload;
None.gifwindow.onload 
= SymOnLoad;
None.gif
None.gif
//-->
None.gif
</script>
None.gif
None.gif 
None.gif

//==========================
//添加文章内容
//提交iframe中的内容
//==========================
要提交iframe的内容到数据库,必须借助js脚本作为中介进行传递,这就很明显可以感觉到在编辑文章内容,iframe的内容会有少许滞后载入。
定义隐藏的

<form name="form1" method="post" id="getform" action="" onsubmit="ifr_outContent()" ></form>
<input type="hidden" name="tSValue" id="tSValue" value="">

//将iframe中的内容,取出赋予input的tSValue中,待onsubmit后一起提交给后端,进行数据插入操作。
function ifr_outContent()
{
 HtmlEdit.focus();
 //var ifr_window=window.frames["HtmlEdit"]; 
 //var conHtml = ifr_window.document.body; //这两句是获得iframe对象内部非html内容的最佳方法,

 cont=HtmlEdit.document.body.innerHTML;
 document.getElementById("tCValue").value = cont;
}

//====================
//编辑的文章内容
//====================
<form name="form1" method="post" id="getform" action="" onsubmit="ifr_outContent()" ></form>
<input type="hidden" name="tSValue" id="tSValue" value=程序从数据库中获取的值>

function set()
{
 var ifr_window = window.frames["HtmlEdit"];
 var conHtml = ifr_window.document.body;
 conHtml.innerHTML = 程序从数据库中获取的值;
}

注意:我用php取编辑数据时,加了
function txtToEnter($str)
{
 $str = ereg_replace(" "," ",$str);
 //$str = ereg_replace("\r","<br>",$str);
 //$str = ereg_replace("\n","<br>",$str);
 $str = ereg_replace("\r\n","<br>",$str);
 $str  = ereg_replace("'","\"",$str);
 return $str;
}
将从数据库中取出的内容转化了下,要不然一换行就没法显示编辑的数据了,其实应该有js处理换行的方法,还在寻找中。。。

 申明:调用的selectcolor.htm,pic.htm,media.htm,flash.htm文件均来自互联网,如作者发现,请与我联系,标明出处。

转载于:https://www.cnblogs.com/ovliverlin/archive/2007/03/22/684083.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值