Pregunta

¿Es posible abrir una nueva ventana en JavaScript usando la función window.Open y luego establecer el foco en esa pestaña?

Esto es lo que estoy haciendo hoy:

            var winRef = window.open(outUrl,wName,'left='+ wX +',top=' + wY + ',height=' + wH + ',width=' + wW + args);
            try {
                // Not all window types support the focus() property.
                winRef.focus();
            }
            catch (exception) {
            }

La ventana se abre, pero la nueva pestaña no recibe el foco.

¿Fue útil?

Solución

Arrendajo,

Estás viendo un comportamiento diseñado.Para limitar las oportunidades de comportamiento malicioso, los scripts que se ejecutan en ventanas con pestañas no pueden afectar a otras pestañas.

Para obtener más información, consulte Navegación con pestañas para desarrolladores en http://msdn.microsoft.com/en-us/library/ms537636.aspx :

"La capacidad de abrir varios documentos dentro de la misma ventana del navegador tiene ciertas implicaciones prácticas y de seguridad [...] Las pestañas activas (pestañas con foco) no pueden verse afectadas por scripts que se ejecutan en pestañas inactivas o en segundo plano".

BR.

Otros consejos

Como usuario, nunca quiero que las aplicaciones (o pestañas) se enfoquen a menos que lo solicite específicamente.He hecho todo lo posible para evitar que las pestañas de mi navegador (Firefox) se enfoquen por este motivo.

Estoy razonablemente seguro de que no puedes cambiar el enfoque a otra pestaña.

Según tengo entendido, esto se hace para limitar un poco las ventanas emergentes y otros contenidos maliciosos para que no roben la atención de los usuarios.

Si la otra "pestaña" es parte de su aplicación (y no contenido de otro sitio), tal vez debería incluirla en un div emergente encima de su contenido principal en lugar de en una ventana separada;de esa manera siempre puedes controlar cómo enfocarlo, desactivar el contenido debajo de él (para diálogos modales), ocultarlo, etc.

Como usuario, ¿no debería poder controlar cómo funciona esto?

¿Qué sucede si hay una aplicación que se mejoraría con esta función y que quiero ejecutar? ¿No debería poder otorgarle ese privilegio a un dominio?

Solo un pensamiento.

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