Online rich-text editor
An online rich-text editor is the interface for editing rich text within web browsers, which presents the user with a "what-you-see-is-what-you-get" (WYSIWYG) editing area. The aim is to reduce the effort for users trying to express their formatting directly as valid HTML markup.
Though very early browsers could display rich text, user data entry was limited to text boxes with a single font and style (implemented with the
<textarea> HTML element). Internet Explorer was the first to add a special "designMode" which allowed formatted parts of a document to be edited by the user using a cursor. Mozilla followed suit in version 1.3, and most major browsers now implement this informal standard in some capacity.
The technical capabilities needed to implement an online rich text editor were not covered by the W3C specifications for HTML4. Nevertheless, popular services like Gmail and WordPress have relied on rich text editing as their main user interface. With HTML5, some standardization was made on a DOM property called "contentEditable"—which resembles Internet Explorer's original extension. Many of the Online office suites tend to provide online text editing and formatting functionality.
The majority of online rich text editors use an iframe element for the content area. This way the content inside the editor is separate from the rest of the page, because it is in a different document. The benefit from this separation is that the editor can be used anywhere on the site (e.g. in an admin area) while still maintaining the content styles the users expect to see when the content is published (e.g. in a public area).
Some editors use div elements for their content area. This way the editor content inherits the same style as the rest of the page, because it is in the same document. This approach is mainly used when the users need to edit content "in-place", preserving the overall layout of the page. Examples of such "in-place" editors are the DotNetNuke CMS.
Inline editors differ from normal editors as they can edit the content directly, without placing it inside another element, frequently with a
`contenteditable` attribute. These editors include Aloha Editor, CKEditor, SnapEditor and TinyMCE. Editors that use an iframe, to avoid styling conflicts, include CKEditor, Dijit Editor and TinyMCE.