Pregunta

Estoy tratando de permitir al usuario editar un div contenteditable, pero estoy encontrando que no puedo usar pasteHTML menos que haya algún texto seleccionado.

pensé document.selection.createRange () volvería una selección de longitud cero válido (es decir, una posición), pero por desgracia no.

Me he luchado para encontrar una solución a este que no implica marcos flotantes (no es una opción en la actualidad).

Cualquier sugerencia / ideas / preguntas más que bienvenidos.

¿Fue útil?

Solución

Asegúrese de que la atención se centra en el div editable antes de crear el TextRange de la selección:

var div = document.getElementById("your_div");
div.focus();
document.selection.createRange().pasteHTML("<b>PASTED</b>");

Otros consejos

Se puede usar un formulario de área de texto. Esto es simple y multi-navegador, pero no sabe en qué medida su estilo es limitado o si el uso de un elemento de formulario o forma es adecuada para su problema.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top