tengo que ser capaz de hacer que algunas etiquetas HTML dentro de un área de texto (es decir, <fuerte>, <i>, <u>, <un>), pero las áreas de texto sólo interpretar su contenido como texto. ¿Existe una manera fácil de hacerlo sin depender de librerías/plugins externos (estoy usando jQuery)? Si no, ¿sabe de algún complemento de jQuery que pueda utilizar para hacer esto?representación HTML dentro de área de texto
Respuesta
Esto no es posible con un textarea
. Lo que se busca es un div content editable, que se realiza muy fácilmente:
<div contenteditable="true"></div>
div.editable {
width: 300px;
height: 200px;
border: 1px solid #ccc;
padding: 5px;
}
strong {
font-weight: bold;
}
<div contenteditable="true">This is the first line.<br>
See, how the text fits here, also if<br>there is a <strong>linebreak</strong> at the end?
<br>It works nicely.
<br>
<br><span style="color: lightgreen">Great</span>.
</div>
@Tim, de hecho lo es! A veces estás atrapado pensando jQuery y terminas haciéndolo más complicado de lo que debe ser. He actualizado mi respuesta. Gracias por iluminarme :) – mekwall
es una verdadera lástima que no puedas usar esto prácticamente sin el uso de javascript para enviar tus cambios usando ajax o copiarlos en un formulario de entrada. ¡Si alguien ha encontrado la forma de hacerlo, estaría realmente interesado! – Ben
@TimDown y más corto: '
';) – yckartCon un div editable puede utilizar el método document.execCommand
(more details) para proporcionar fácilmente el soporte para las etiquetas que ha especificado y para algunas otras funcionalidades.
#text {
width : 500px;
\t min-height : 100px;
\t border : 2px solid;
}
<div id="text" contenteditable="true"></div>
<button onclick="document.execCommand('bold');">toggle bold</button>
<button onclick="document.execCommand('italic');">toggle italic</button>
<button onclick="document.execCommand('underline');">toggle underline</button>
Esto no funciona en algunos navegadores simplemente agregando esto como una nota COMO de '16 –
que tienen el mismo problema, pero a la inversa, y la solución siguiente. Quiero poner html de un div en un área de texto (para que pueda editar algunas reacciones en mi sitio web; quiero tener el área de texto en la misma ubicación.)
<div id="msg500">here some <strong>html</strong> <i>tags</i>.</div>
Para poner el contenido de este div en una textarea Yo uso:
var content = $('#msg500').text();
$('#msg500').wrapInner('<textarea>'+content+'</textarea>');
Un adendo a esto. Puede usar entidades de caracteres (como cambiar <div>
a <div>
) y se mostrarán en el área de texto. Pero cuando se guarda, el valor de textarea es el texto como se representa. Entonces no necesitas descifrar. Acabo de probar esto en todos los navegadores (es decir, de vuelta a 11).
I Realmente me gustaría que esto funcione para mí, pero no fue así. Por ejemplo ' 'no se muestra como HTML. Estoy en Chrome 46. – sirdank
Hm. Copié y pegué esa cadena directamente en un documento html y me muestra el marcado correctamente en Chrome Version 48.0.2552.0 dev (64-bit) OS X 10.11.1. Entonces tal vez es un problema de versión. – axlotl
No funciona para mí tampoco. –
probar este ejemplo en JSFiddle
<style>
.editable {
width: 300px;
height: 200px;
border: 1px solid #ccc;
padding: 5px;
resize: both;
overflow: auto;
}
</style>
<div class="editable" contenteditable="true"></div>
<button class="bold">toggle red</button>
<button class="italic">toggle italic</button>
<script>
function toggleRed() {
var text = $('.editable').text();
$('.editable').html('<p style="color:red">'+text+'</p>');
}
function toggleItalic() {
var text = $('.editable').text();
$('.editable').html("<i>"+text+"</i>");
}
$('.bold').click(function() {
toggleRed();
});
$('.italic').click(function() {
toggleItalic();
});
</script>
Editar por Jeffrey Crowder - Desarrollo Web/Windows programador
que añade un violín de JS del código.
Esto es posible con <textarea>
la única cosa que hay que hacer es usar Summernote WYSIWYG editor
interpreta etiquetas HTML dentro de un área de texto (es decir, <strong>
, <i>
, <u>
, <a>
)
No usa textarea. Utiliza div, que no se puede enviar con un formulario. –
Funciona con textarea, solo intenta dar ID a textarea en lugar de div. Creé un proyecto completo usando textarea y summernote. ¡Funciona bien! –
¿Cuál es el punto? Se comporta igual que ckeditor si se usa textarea. No se pueden procesar etiquetas HTML como se le pidió. –
- 1. área de texto dentro div
- 2. ¿Cómo puedo incrustar un área de texto dentro de otra área de texto en HTML?
- 3. HTML Área de texto de desplazamiento horizontal
- 4. Resaltar texto dentro de un área de texto
- 5. ¿Cómo puedo mostrar el formato HTML dentro de un área de texto?
- 6. HTML sin representación en el campo de texto de Django
- 7. código Prettify dentro de un área de texto
- 8. jQuery Escapar HTML a partir de un área de texto
- 9. MVC3 HTML Helper para gran área de texto
- 10. Rspec representación de texto
- 11. Desactivación de Área de texto de CSS
- 12. jquery: ¿cómo recorre cada línea nueva de texto escrito dentro de un área de texto?
- 13. TextBlock dentro de un Viewbox - extraña representación
- 14. Hacer texto seleccionable en un área de texto dentro de un padre ordenable jQuery
- 15. HTML/CSS de entrada/área de texto, texto por defecto, y los colores
- 16. Colocar texto dentro de textarea en FireFox
- 17. Cambiar la fuente del área de texto
- 18. jQuery ajustar el texto seleccionado en un área de texto
- 19. Representación de etiquetas HTML dentro de la etiqueta CDATA en XSL
- 20. convertir cadena de texto a representación hexadecimal o representación binaria
- 21. Consistencia de fuente en un área de texto
- 22. Ese área de texto de nulidad
- 23. jquery área de texto de crecimiento automático versus texto inicial
- 24. Plantillas de representación dentro de los ayudantes en el manillar
- 25. ¿Cómo se pueden mostrar los estilos en un área de texto HTML
- 26. Evite la representación de comentarios en HTML
- 27. Google Analytics - Bloques HTML/página de representación
- 28. Representación parcial en HTML/JavaScript
- 29. ¿Cómo mostrar el texto html dentro de un elemento Wicket?
- 30. texto de fundido demasiado tiempo dentro elemento HTML
La única manera de hacerlo eso será superponer su marcado HTML sobre el contenido de la etiqueta textarea a través de trucos de posicionamiento de CSS. Nada lo ayudará a convencer al navegador para que represente los contenidos de la tabla de texto de manera diferente. (¿Por qué exactamente "necesitas" hacer esto?) – Pointy
Solo necesito que el usuario pueda agregar algunos estilos de formateo al texto que ingresa (como cuando escribes un artículo en Wordpress).Simplemente no necesito todas las características, como alineación de texto, etc., sino solo esas etiquetas básicas. –