En InternetExplorer, un contenido DIV crea un nuevo párrafo (<p></p>
) cada vez que presiona Enter mientras Firefox crea una etiqueta <br/>
. ¿Es posible obligar a IE a insertar un <br/>
en lugar de un nuevo párrafo?evite es decir elemento contentEditable para crear párrafos en la tecla Intro
Respuesta
Sí, es posible evitar la inserción de párrafos deteniendo primero el evento de tecla (window.event.stopPropagation();
) y luego insertando la cadena usando la inserción HTML command.
Sin embargo, IE depende de este divs para establecer estilos, etc. y usted tendrá problemas al usar <br> s.
Le sugiero que utilice un proyecto como TinyMCE or other editors y busque un editor que se comporte de la manera que le gustaría, ya que tienen todo tipo de soluciones para diferentes problemas del navegador. Tal vez pueda encontrar un editor que utiliza < br s ... >
Si se puede usar, FCKEditor tiene un escenario de este
he aquí una solución (utiliza jQuery). Después de hacer clic en el botón "Cambiar a BR", se insertará la etiqueta <br>
en lugar de la etiqueta <p></p>
.
HTML:
<div id='editable' contentEditable="true">
This is a division that is content editable. You can position the cursor
within the text, move the cursor with the arrow keys, and use the keyboard
to enter or delete text at the cursor position.
</div>
<button type="button" onclick='InsertBR()'>Change to BR</button>
<button type="button" onclick='ViewSource()'>View Div source</button>
Javascript:
function InsertBR()
{
$("#editable").keypress(function(e) {
if (e.which == 13)
{
e.preventDefault();
document.selection.createRange().pasteHTML("<br/>")
}
});
}
function ViewSource()
{
var div = document.getElementById('editable');
alert('div.innerHTML = ' + div.innerHTML);
}
use 'insertNode()' en lugar de 'pasteHTML()' para IE11 + y cross browser como se menciona [aquí] (http://stackoverflow.com/questions/6690752/insert-html-at-caret-in-a-contenteditable -div/6691294 # 6691294) –
Siempre se puede aprender a utilizar SHIFT +ENTER para las devoluciones de una sola línea y ENTER de saltos de párrafo. IE se comporta como MS Word a este respecto.
Cambio de la line-height
del <p>
dentro de las obras editables <div>
:
#editable_div p
{
line-height: 0px;
}
- 1. Cómo convertir una tecla Intro Pulse en una pestaña Presione la tecla para páginas web
- 2. Cómo ocultar el teclado en la tecla Intro
- 3. Seleccione el campo NEXT en la tecla Intro Presione
- 4. ¿Cómo uso la tecla Intro como manejador de eventos (javascript)?
- 5. tecla Intro en asp.net disparando el botón incorrecto
- 6. Insertar enlace en el elemento contenteditable
- 7. Evitar el texto de la transformación de vincular es decir, el modo contentEditable
- 8. SqlAlchemy: Cómo crear conexiones entre usuarios, es decir, crear "amigos"
- 9. Pulse Intro para continuar
- 10. Hacer la tecla Intro en un formulario HTML enviar en lugar de activar el botón
- 11. Inhabilitar el envío del formulario mediante la tecla Intro en solo _algunos campos
- 12. Capture la tecla Intro, pero no cuando elija la sugerencia de autocompletar del navegador
- 13. ¿Cómo capturar la tecla Intro presionada en las páginas que contienen varias formas?
- 14. ¿Crear mensajes (es decir, borradores) en Gmail con IMAP/SMTP?
- 15. Capturar una tecla Intro presionada en cualquier lugar de la página
- 16. ¿Cómo puedo saber cuándo se presiona la tecla Intro en un cuadro de texto?
- 17. ¿Cómo capturo la tecla Intro en un cuadro combinado de formularios de Windows
- 18. Presionando la tecla Intro en lugar del botón Hacer clic con Zapatos (Ruby)
- 19. Permitir la tecla Entrar para iniciar sesión en asp.net?
- 20. ¿Puedo usar el enfoque automático en un elemento con contenteditable?
- 21. jQuery: ¿tecla para la tecla TAB?
- 22. ¿Cómo deshabilitar el comportamiento de envío automático al presionar la tecla Intro?
- 23. Personalizar el cursor de texto en el elemento contenteditable
- 24. Presione Intro para continuar en C
- 25. expresión regular python para dividir párrafos
- 26. Eliminar párrafos "vacíos" con jQuery
- 27. teclado del número de la fuerza en el ipad para el elemento contenteditable
- 28. Haciendo que un botón de JDialog responda a la tecla Intro
- 29. ¿Cómo puedo habilitar 'arrastrar' en un elemento con contentEditable?
- 30. Prevenir la 'tecla Enter' para activar TextWatcher
Esta estrategia se rompe Deshacer. ¡Cada vez que presionas Enter, mutes el DOM, por lo que el usuario ya no puede usar el menú Deshacer para deshacer el cambio! –
La manipulación del DOM mediante el uso de los comandos NO interrumpe la acción de deshacer. Todos los comandos se pueden deshacer. Por supuesto, debes evitar cosas como div.innerHTML = "foo"; –