我正在尝试开发一个在线编辑器(如FCKEditor/etc),但我不知道它们是如何工作的.我知道WYSIWYG的有Javascript和IFrame,但它们实际上如何工作?
我特别好奇能够实时预览编辑器中输入的内容.
RTE通常(总是?)使用iframe实现.iframe内部可用的文档对象必须将属性designMode设置为on.在此之后,您需要做的就是使用文档对象的execCommand方法来实现粗体,斜体,颜色,背景等基本功能.
使用iframe的主要原因是,在单击样式按钮时,您不会失去选择的焦点(Firefox允许仅在iframe上设置此属性).此外,contentEditable属性在3之前的Firefox版本中不可用.
当你想用RTE做一些奇特的东西时,事情变得有点复杂.此时,您必须使用Range对象(在各种浏览器中以不同方式实现).