Estoy creando un área de texto HTML que acepta la entrada de teclas de tab usando JavaScript.
Cuando busqué una solución en la web, encontré esta respuesta , pero después de jugar un poco, descubrí que ctrl+z deja de funcionar después de presionar la tecla tab .
Hacer algunos experimentos más reveló que cambiar el atributo de valor probablemente era el culpable de este problema. Aquí hay un ejemplo de código a pequeña escala que, con suerte, puede reproducir este comportamiento usted mismo.
https://codepen.io/MartianLord/pen/gORKPGp?editors=1010
Me las arreglé para encontrar una solución utilizando document.execCommand para simular la entrada del usuario, pero este método está en desuso , como puede ver aquí , por lo que estoy buscando una solución más actualizada.
Para admitir ctrl+z mientras usa la tab en <textarea> , debe implementar funciones de deshacer y rehacer para conectarse con <textarea> . Cuando el <textarea> cambie, registre los cambios en el historial y revierta cuando ocurra la entrada de la tecla ctrl+z .
UndoRedojs es una biblioteca para esta tarea.
Creo que habrá mucho trabajo por hacer, como establecer la posición de selección, para implementarlo por completo. Recomiendo usar un editor de texto que ya haya sido creado.