很多论坛都使用在线编辑器,一直好奇它们是如何实现的,在网上搜索了一些资料,终于有所收获,纠正了资料中的一些错误,凑了一个可以直接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命令用法网上可搜出一大堆,不再赘述。