作者:静卍谧梁言_250 | 来源:互联网 | 2014-08-22 18:11
富文本编辑器,RichTextEditor,简称RTE,是一种可内嵌于浏览器,所见即所得的文本编辑器。 富文本编辑器不同于文本编辑器,比较好的文本编辑器有kindeditor,fckeditor等,百度推出的开源富文本编辑器UEdito
富文本编辑器,Rich Text Editor, 简称 RTE, 是一种可内嵌于浏览器,所见即所得的文本编辑器。
富文本编辑器不同于文本编辑器,比较好的文本编辑器有kindeditor,fckeditor等,百度推出的开源富文本编辑器UEditor算是其中的后起之秀。
对于支持富文本编辑的浏览器来说,其实就是设置 document
的 designMode 属性为 on 后,再通过执行 document.execCommand('commandName'[, UIFlag[, value]]) 即可。commandName 和 value 可以在MSDN 上和MDC 上找到,它们就是我们创建各种格式的命令,比方说,我们要加粗字体,执行 document.execCommand('bold', false) 即可。很简单是吧?但是值得注意的是,通常是选中了文本后才执行命令,被选中的文本才被格式化。对于未选中的文本进行这个命令,各浏览器有不同的处理方式,比方
IE 可能是对位于光标中的标签内容进行格式化,而其它浏览器不做任何处理,这超出本文的内容,不细述。同时需要注意的是,UIFlag 这个参数设置为 true 表示 display any user interface triggered by the command (if any)
各浏览器之前的区别
1、Mozilla和IE在生成HTML时,Mozilla是生成span样式,而IE则使用HTML标签生成样式:
Mozilla
style="font-weight: bold;">I love geckos.
style="font-weight: bold; font-style: italic;
text-decoration: underline;">Dinosaurs are big.
IE
I love geckos.
Dinosaurs are big.
2、另外一个区别就是访问iframe中的document
Mozilla使用W3C标准方式 IFrameElement.contentDocument
IE使用 IFrameElement.document
或者直接使用 document.getElementById(aID).contentWindow.document 获取document
这里附上最简化的编辑器示例:
eidtor.html
自定义编译器
eidtorIframe.html