← Toda la documentación

editor.focus()

Mueve el foco del teclado al editor para que el usuario pueda empezar a escribir sin hacer clic antes. Úsalo después de crear el editor, después de insertar contenido desde código o después de cerrar un cuadro de diálogo o un panel lateral que se llevó el foco del área de edición.

Sintaxis

editor.focus()

Parámetros

Ninguno.

Valor devuelto

Nada (undefined).

Notas de comportamiento

focus() no es un simple envoltorio de la llamada focus nativa del DOM: tiene en cuenta los distintos modos del editor y las peculiaridades de la selección en los navegadores:

  • Modo de código. Mientras el editor muestra el código HTML, el foco se dirige al editor de código y no al área de texto enriquecido, así que la llamada hace lo correcto en cualquiera de los dos modos.
  • Un control seleccionado tiene prioridad. Si hay un control seleccionado, como una imagen, focus() vuelve sin cambiar nada. Es intencionado: evita que una llamada a focus desde código descarte sin avisar la selección de imagen del usuario (y los controladores de redimensionamiento que la acompañan).
  • El cursor se conserva. Algunos navegadores descartan la selección actual cuando el foco entra en el marco de edición. El editor vuelve a aplicar después el rango guardado, así que el cursor se queda donde lo dejó el usuario en lugar de saltar al principio del documento.

Ejemplo de uso

Da el foco al editor en cuanto esté listo, para que se pueda escribir en la página de inmediato:

var editor1 = new RichTextEditor("#div_editor1");
editor1.focus();

Inserta un fragmento y luego devuelve el foco al editor para que la escritura continúe con naturalidad:

document.getElementById("btn_signature").onclick = function () {
    editor1.insertHTML("<p>-- <br/>Sent from RichTextEditor</p>");
    editor1.focus();   // the button took focus on click; give it back
};

Da el foco después de mostrar un editor oculto. Dar el foco a un elemento que sigue con display:none no hace nada, así que muéstralo primero:

function openComposer() {
    document.getElementById("composer").style.display = "block";
    editor1.focus();
}

Relacionado