Evite que Firefox cree un div nuevo y satisfactorio cuando el usuario acceda a la acción.

Tengo un div contenteditable en mi sitio que funciona muy bien.

En Chrome, solo puedo usar la tecla de retorno para agregar otra línea.

En Firefox crea un nuevo (extra) div.

Sé que puedo usar shift + return, pero no creo que los usuarios lo hagan ahora 🙂

¿Es posible prevenir este comportamiento?

Mira el violín: http://jsfiddle.net/D7MJx/

Lo he intentado con FF 3.6

EDITAR: Lo mismo ocurre en IE8

Ok, ya lo descubrí un poco.

No es la mejor solución (más limpia), pero funciona para mí.

Solo he probado esto en Chrome, pero creo que otros navegadores funcionarán de la misma manera.

Terminé haciendo esto:

$('div[contenteditable=true]').keydown(function(e) { // trap the return key being pressed if (e.keyCode == 13) { // insert 2 br tags (if only one br tag is inserted the cursor won't go to the second line) document.execCommand('insertHTML', false, '

'); // prevent the default behaviour of return key pressed return false; } });

Creo que quieres el comando insertBrOnReturn .

 document.getElementById('myRichEditArea').contentDocument.execCommand('insertBrOnReturn',false, true) 

https://developer.mozilla.org/en/rich-text_editing_in_mozilla

Los documentos de Mozilla dicen que insertBrOnReturn no es soportado por IE pero los documentos son viejos y probablemente significa IE7 o inferior. Probablemente haya otra forma de hacerlo en IE.