Я пробовал много разных поисков Google, но мне не удалось найти текущий учебник (новее чем 2006) о том, как на самом деле создать редактор WYSIWYG. Я понимаю, что их уже много, но мне любопытно, как они на самом деле работают. Я просмотрел некоторые из исходного кода, но это много, чтобы переварить. Мне было интересно, может ли кто-нибудь описать, как они работают? То есть, кажется, что форматированный текст не может быть помещен в текстовое поле, и все же они дают иллюзию делать именно это - как?Как создать редактор HTML/JS WYSIWYG?
ответ
Редакторы Javascript WYSIWYG не используют текстовое поле (по крайней мере, не извне, вполне вероятно, что за кулисами есть текстовое поле, заполненное кодом, составляющим контент WYSIWYG, чтобы его можно было публиковать в форме).
Скорее, существует два свойства, которые используются для создания редактируемой области на веб-странице: designMode
, которая применяется ко всему документу, или contentEditable
, что относится к определенному элементу. Оба свойства были первоначально нововведениями Microsoft, но были приняты всеми основными браузерами (contentEditable
теперь является частью HTML5).
После создания документа (в терминах редакторов с расширенным текстом это обычно означает внедрение iframe с помощью designMode, установленного на вашей странице), или элемент становится редактируемым, форматирование выполняется с использованием метода execCommand
(для которого существует ряд различных режимы - полужирный, курсив и т. д. - которые не обязательно одинаковы во всех браузерах. См. this table для получения дополнительной информации).
Для передачи содержимого из редактируемого элемента на сервер, как правило, innerHTML
редактируемого элемента загружается в текстовое поле, которое публикуется. Состав создаваемого HTML зависит от браузера.
Ресурсы:
В основном они скрывают ваше текстовое поле и помещают iframe в качестве поля редактора. Они захватывают ваш вход (text + formating) и записывают соответствующий HTML в iframe. Если вы отправляете свою форму, включая исходную текстовую область, они копируют содержимое iframe в текстовое поле и поэтому отправляется html-код.
Хорошо, это довольно упрощено.
У меня есть хорошая идея взять этот код, чтобы сделать прохладный WYSIWYG editor-
Чтобы сделать хороший редактор I сделали код с JavaScript, который откроет новое окно, содержащее результат -
Давайте начнем с объемноцентрированных
<body>
<textarea style="height:400px;width:750px;overflow:auto;"onblur="x=this.value"></textarea>
<br />
<button onclick="ShowResult()">see result!</button>
</body>
Сейчас мы продолжаем с JavaScript-
function ShowResult()
{
my_window = window.open("about:blank", "mywindow1");
//By the above line code we have opened a new window
my_window.document.write(x);
//Here we have added the value of the textarea to the new window
}
Давайте посмотрим код на-целом: -
<html>
<script type="text/javascript">
function ShowResult()
{
my_window = window.open("about:blank", "mywindow1");
my_window.document.write(x);
}
</script>
<body>
<textarea style="height:400px;width:750px;overflow:auto;" onblur="x=this.value">
</textarea><br />
<button onclick="ShowResult()">see result!</button>
</body>
</html>
Если я могу помочь вам в любом случае, я очень рад этому.
Спасибо, что задали этот вопрос и увеличили мое любопытство по отношению к JavaScript.
-1 для использования
тег, встроенная обработка событий и встроенный дизайн! –
Жаль, что я не смог бы вы проиграть. Это всего лишь пример, и отображение правил стиля inline упрощает понимание, чем необходимость ссылаться на дополнительный блок кода css ... –
@AakashGoel +1, чтобы сбалансировать его. – Ced
- 1. popup Редактор WYSIWYG ROR
- 2. Редактор WYSIWYG для IE
- 3. Редактор MFC WYSIWYG
- 4. Online WYSIWYG Редактор PDF
- 5. Как очистить редактор Summernote WYSIWYG
- 6. Перетаскиваемый редактор wysiwyg
- 7. Редактор WYSIWYG для TWIKI
- 8. Неразрушающий редактор WYSIWYG?
- 9. Редактор веб-страницы WYSIWYG
- 10. Редактор WYSIWYG со ссылками
- 11. Редактор Google Closure/WYSIWYG
- 12. Редактор WPF WYSIWYG
- 13. Маленький, пользовательский редактор WYSIWYG
- 14. Редактор CakePHP и WYSIWYG
- 15. jQuery + InnovaStudio Редактор WYSIWYG
- 16. Редактор WYSIWYG для XUL
- 17. Редактор XML WYSIWYG Online
- 18. Настройка Create.js (редактор WYSIWYG)
- 19. ищет легкий редактор wysiwyg
- 20. Редактор Wysiwyg с рельсами
- 21. WYSIWYG редактор для Rails?
- 22. Текстовый редактор JQuery WYSIWYG
- 23. Java WYSIWYG HTML-редактор
- 24. Угловой редактор WYSIWYG?
- 25. Редактор WYSIWYG в .NET
- 26. Редактор WYSIWYG vs Код руки
- 27. «Ограниченный» текстовый редактор HTML/редактор WYSIWYG?
- 28. Создайте простой веб-редактор WYSIWYG
- 29. Как я могу создать собственный редактор wysiwyg со своим стилем?
- 30. WYSIWYG - Редактор текста и кода
на боковой ноте ... Мне бы хотелось увидеть версию WYSWIG с холстом, похожую на [bespin] (https://bespin.mozillalabs.com/) (heres a [видео-презентация] (http : //www.youtube.com/watch? v = Ps6GBLlSGLs)) –
Для тех, кто заинтересован, сделать элемент редактируемый:
– LDKУ меня тот же вопрос. Сейчас в 2014 году и с учетом HTML5, остается ли этот ответ действительным? Нужно ли использовать iFrames даже сегодня? cc @DavidMurdoch – NoobDeveloper