在线编辑器的原理简单示例

很多论坛都使用在线编辑器,一直好奇它们是如何实现的,在网上搜索了一些资料,终于有所收获,纠正了资料中的一些错误,凑了一个可以直接demo的例子:

-----------------------------------------------------------------------------------------------------------------------------------------------------

<IFRAME id="HtmlEdit" style="WIDTH: 100%; HEIGHT: 296px" marginWidth="0" marginHeight="0"></IFRAME>
<script language="javascript">                                                                                                                                          
var editor;
editor = document.getElementById("HtmlEdit").contentWindow;

//但是IE与FireFox有点不同,为了兼容FireFox,所以必须创建一个新的document。
editor.document.open();
editor.document.writeln('<html><body></body></html>');
editor.document.close();
//只需键入以下设定,iframe立刻变成编辑器。
editor.document.designMode = 'On';

//字体特效 - 加粗方法一
function addBold()
{
    editor.focus();
    //所有字体特效只是使用execComman()就能完成。
    editor.document.execCommand("Bold", false, null);
    alert(editor.document.body.innerHTML);
}
</script>
<input type=button onclick='addBold()'value='粗体'/>

-------------------------------------------------------------------------------

将上面代码拷贝并保存为html文件,运行即可见效果,最重要的是下面两句:

editor.document.designMode = 'On';  //用这句打开iframe窗口的编辑模式
editor.document.execCommand("Bold", false, null);  //用这句对窗口中选中的文字进行加粗操作

document.execCommand命令用法网上可搜出一大堆,不再赘述。

 

posted @ 2017-11-16 16:41  realhero  阅读(944)  评论(0编辑  收藏