Поскольку я делаю это сейчас для своей работы, я провел небольшое количество исследований. Из того, что я понял, есть два способа сделать это:
Document.designMode
Использование document.designMode
в JavaScript, который устанавливает возможность редактирования всего HTML-документа. Поскольку весь HTML-документ является редактируемым, предположительно, iframe
необходим для инкапсуляции редактирования, чтобы пользователь не мог редактировать любую часть страницы, которую вы не хотите редактировать.
Насколько я могу судить, демо, которое вы связали, и TinyMCE использует этот метод.
contenteditable
Атрибут contenteditable
HTML похож, но не требует использования iframe
. Вы добавляете атрибут к тегу, и весь HTML-код внутри него становится редактируемым с мигающим курсором.
Вот демонстрация этого: http://html5demos.com/contenteditable
Примечания
- Лично я буду смотреть на
contenteditable
для моей задачи. Вот хороший обзор и подробности по теме: http://blog.whatwg.org/the-road-to-html-5-contenteditable
- Как я уже сказал, я провел ограниченное исследование по этому вопросу, поэтому, пожалуйста, помогите мне исправить любые ошибки:)