Eu preciso ser capaz de renderizar algumas tags HTML dentro de uma área de texto (ou seja, <strong>, <i>, <u>, <a>), mas as áreas de texto apenas interpretam seu conteúdo como texto. Existe uma maneira fácil de fazer isso sem depender de bibliotecas / plugins externos (estou usando o jQuery)? Caso contrário, você conhece algum plugin jQuery que eu poderia usar para fazer isso?
javascript
jquery
html
textarea
O Monge Codificador
fonte
fonte
Respostas:
Isso não é possível com a
textarea
. O que você está procurando é uma div editável de conteúdo , que é feita com muita facilidade:jsFiddle
fonte
contenteditable
é um atributo enumerado, em vez de um atributo booleano (há uminherit
estado, além detrue
efalse
), e acho que isso significa que especificar um valor é obrigatório, embora não seja possível encontrar um bit definitivo da especificação para confirmar isso. MDN parece concordar embora.contenteditable
sem valor como sendo o mesmo quecontenteditable=""
, por sua vez, é o mesmo quecontenteditable="true"
.textarea
. Digitar<strong>someting</strong>
o violino deixa você com o texto exato. O HTML não é aplicado.Com uma div editável, você pode usar o método
document.execCommand
( mais detalhes ) para fornecer facilmente o suporte para as tags que você especificou e para outras funcionalidades.fonte
Desde que você disse apenas render, sim você pode. Você pode fazer algo como:
textarea
renderize html! Além de piscar ao redimensionar, incapacidade de usar classes diretamente e ter que garantir que a div nosvg
tenha o mesmo formato quetextarea
o cursor para alinhar corretamente, funciona!fonte
Um adendo a isso. Você pode usar entidades de caracteres (como alterar
<div>
para<div>
) e elas serão renderizadas na área de texto. Mas quando é salvo, o valor da área de texto é o texto renderizado . Portanto, você não precisa decodificar. Acabei de testar isso nos navegadores (ou seja, de volta ao 11).fonte
<textarea> check for url <B>http://localhost/Dashboard.aspx</B> <BR> Tool Started at <B>11/10/2015 3:56:58 AM</B> <BR> .... </textarea>
não é exibido como HTML. Estou no Chrome 46.Eu tenho o mesmo problema, mas ao contrário, e a seguinte solução. Quero colocar o html de uma div em uma área de texto (para que eu possa editar algumas reações no meu site; eu quero ter a área de texto no mesmo local.)
Para colocar o conteúdo dessa div em uma área de texto, eu uso:
fonte
tente este exemplo
fonte
Isso é possível com
<textarea>
a única coisa que você precisa fazer é usar o editor Summernote WYSIWYGele interpreta tags HTML dentro de uma textarea (ou seja
<strong>
,<i>
,<u>
,<a>
)fonte