Estoy haciendo uso de un div satisfactorio en combinación con la biblioteca Javascript rangy para insertar HTML en la posición del cursor.contenteditable div: IE8 no está contento con el retroceso eliminación del elemento HTML
Al final del día el contenido del div se ve comúnmente como:
<div contenteditable="true">
"Hello "
<button contenteditable="false" data-id="147">@John Smith</button>
" "
</div>
Los usuarios obtienen sugirieron al pulsar '@' y obtener posteriormente inserta como un botón cuando está seleccionado (al estilo de Google Plus). También inserto un
después de este botón.
El botón se elimina en Chrome/Safari/Firefox cuando se presiona el espacio de retroceso (después de eliminar primero el
), pero no en IE8. En IE8, el cursor simplemente salta sobre el botón sin quitarlo. Lo que es aún más extraño en IE8 es que si deja el
al lado del botón y coloca el cursor justo al lado del botón, se elimina el botón en el retroceso. Por lo tanto, es feliz cuando hay un
a la derecha del cursor.
¿Alguien sabe lo que necesito para que IE8 funcione en i.t.o. ¿Quitar el botón al retroceder sin la necesidad de un
a la derecha del cursor? (alguna información sobre este extraño comportamiento también podría ayudar)
P.S. No he probado otras versiones de IE
¿Por qué tiene la contenteditable = false en el botón? – MorganTiley
Para que lo elimine del DOM (de una vez) cuando presiona la tecla de retroceso o cuando presiona eliminar (actualmente funciona en Chrome/Safari/Firefox). Si contenteditable = true, el texto del botón se puede editar, que no es mi caso de uso. –
genial No lo sabía. (No he trabajado con entradas en contEd antes). ¿Qué pasa con el manejo del chasquido de retroceso y la comprobación previa de la relación del primer nodo en el rango de selección? – MorganTiley