Ответ 1
Я уверен, что ответа нет - не могу сделать это с помощью textarea.
Из MDN docs:
Элемент HTML <textarea> представляет собой многострочный текстовый редактор для редактирования текста.
- Допустимый контент Текст
Если у меня есть блок textarea
, например...
<textarea name="myTextArea" cols="100" rows="20" readonly=readonly>
.. text area content ...
</textarea>
Как я могу вставить HTML-форматированный текст внутри этого текстового блока? Если бы я мог понять, что следующее должно работать...
<textarea name="myTextArea" cols="100" rows="20" readonly=readonly>
<b>Hello how are you today?</b>
</textarea>
В качестве примера. Но это предложение не выделяется смело. Может быть, я просто пытаюсь сделать что-то, что нельзя сделать?
Я уверен, что ответа нет - не могу сделать это с помощью textarea.
Из MDN docs:
Элемент HTML <textarea> представляет собой многострочный текстовый редактор для редактирования текста.
- Допустимый контент Текст
Вместо этого вам нужно сделать WYSIWYG-редактор.
Невозможно использовать
<textarea>
Используйте это:
<div contenteditable="true">
</div>
Вы правы, это невозможно.
Согласно MDN, " символьные данные "является единственным разрешенным контентом для <textarea>
.
Как рассказали другие ответы, вы ищете редактор WYSIWYG, например CKEditor, TinyMCE или Kendo Editor.
Это не так, но интересно, MDN перечисляет некоторые примеры на странице HTMLTextAreaElement о том, как включить динамическое добавление HTML-тегов вокруг текста в <textarea>
и как включить авторазведение для <textarea>
.
Вы можете сделать это (конвертировать "специальные" символы):
<textarea name="myTextArea" cols="100" rows="20" readonly=readonly>
<b>Hello how are you today?</b>
</textarea>
Неа! Если вы подтвердили это в документе HTML, вы получите ошибку в строке "Тип документа не позволяет элементу" b "здесь".
Что бы вы искали, это редактор What-You-See-Is-What-You-Get, который на самом деле является <iframe>
, который использует функцию JavaScript designMode
. Можно найти учебные пособия о том, как их создать, но гораздо лучше использовать существующую, поскольку это будет действительно полезный и полезный, требует много работы.
Обратите внимание: если вы все еще заинтересованы в проверке, которой вы должны быть, если работаете с HTML, - это то, что вы не сможете использовать строгое объявление DOCTYPE
, поскольку редактор WYSIWYG будет используя iframe
.
Вы можете попробовать это слишком просто, и если вы используете asp.net, используйте lable contron в текстовой области, добавьте это как
Text="< stonename >"
"<";stonename">";
Вот ответ.
Используйте эту функцию.
function br2nl(varTest) {
return varTest.replace(/<br\s*\/?>/ig, "\r");
}
Вы не можете сделать это внутри textarea, но что вы можете сделать... вы можете использовать p-тег и синтаксическую информацию для тега JQuery. Что-то вроде этого:
var stringviewinfo ="aaaaaaaaaaaaaaaaaa<br>aaaaaaaaaaaaaaaaaaaaaaaaa<br>aaaaaaaaaaaaaaaa<b>aaaaaaaa</b>aaaaaaaaaaaaaaaaaa<br>aaaaaaaaaaa<font color=\"red\">AAAA</font>aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<b>aaaaaaaaaaaaa<b>aaaaaaaaaaaaaaaaaaaaaaaaaaaa<br>aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa</br>aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
$('#viewinfo').html(stringviewinfo);
<p style="word-wrap: break-word;" id="viewinfo"></p>
Надеюсь, это поможет.