2011-08-07 16 views
14

¿Hay alguna forma de establecer el foco en el documento, es decir, el área de contenido, en JavaScript? document.focus() no parece hacer nada.¿Hay alguna forma en JavaScript para enfocar el documento (área de contenido)?

+0

¿Está ese documento dentro de la ventana superior de una pestaña del navegador? ¿Está esa pestaña activa (o en el fondo)? ¿Cómo se puede enfocar un documento en sí mismo? –

+0

1. sí, 2. sí, 3. haciendo que las teclas de flecha causen desplazamiento y al no tener nada más enfocado, p. enlaces, botones, cuadros de texto. – Timwi

+0

Creo que quieres 'window.focus();'. El desplazamiento con las teclas de flecha se activa al enfocar el objeto de ventana ... –

Respuesta

24

En HTML 4.01, enfoque está a sólo discuten en el contexto de elementos tales como los controles de formulario y enlaces. En HTML 5, se discute mucho más ampliamente. Sin embargo, la forma en que el enfoque funciona para los documentos depende principalmente del navegador.

Usted puede tratar de:

// Give the document focus 
window.focus(); 

// Remove focus from any focused element 
if (document.activeElement) { 
    document.activeElement.blur(); 
} 

Está muy bien supported también.

+1

Active Element es bastante compatible. Ver: http://stackoverflow.com/questions/5318415/which-browsers-support-document-activeelement – Benry

+0

Benry - gracias por el enlace. Todavía creo que necesita ser probado en función, sin embargo, el costo de un par de accesos a la propiedad es muy bajo en comparación con un posible error de script. Lamentablemente, mi entorno de desarrollo acaba de actualizarse para dejar caer un montón de navegadores antiguos (no es mi elección), así que ya no puedo probar cosas viejas. :-( – RobG

+0

** IE ADVERTENCIA ** - ver http://stackoverflow.com/questions/3586139/ie-is-randomly-minimizing-when-a-link-is-clicked –

2

Parece que el siguiente código funciona ...

document.activeElement.blur(); 
+0

Si no hay ningún elemento activo, devolverá el elemento de cuerpo. Si * activeElement * no es compatible, arrojará un error. – RobG

Cuestiones relacionadas