¿Cómo llevo una ventana abierta ya existente al frente de otras ventanas desde otro código de Windows?

La pregunta fue bastante descriptiva, pero la describiré más.

Básicamente, tengo window1 . Al hacer clic en un enlace de botón, se abre la window2 . Al hacer clic en un botón en la window2 abre la window3 , al hacer clic en un botón en la window3 debe volver a window2 la window2 al frente de la pantalla en la parte superior de la window2 .

No estoy seguro de cómo se hace esto exactamente, sin embargo he usado y jugado con focus (), abridor y otros métodos diversos y parece que no puedo hacer que funcione correctamente.

Actualización : Esto no ha funcionado desde Chrome (21+). La solución es cerrar / volver a abrir.

El siguiente código funciona para mí en Firefox (Mac y Windows), Safari (Mac y Windows) e IE8 (Windows, por supuesto). No he probado IE6 o IE7.

Sin embargo, no funciona en Chrome para Mac o Windows. Específicamente, al hacer clic en el botón una vez crea la ventana emergente y la lleva al frente. Sin embargo, volver a la ventana original y hacer clic en el botón nuevamente no vuelve a enfocar la ventana emergente.

       

Actualización : Esto no ha funcionado desde Chrome (21+). La solución es cerrar / volver a abrir.

 opener.focus() 

funciona. Si no es así, necesitaremos un caso de prueba.

Algunas cosas que pueden causar problemas: llamarlo en un controlador de eventos que se dispara antes de que la ventana del botón se enfoque debido al clic (pero no creo que ese sea el caso normalmente); ejecutarlo en un navegador que incluye pop-ups en las tabs del navegador.

(Estoy de acuerdo con el comentario de Max. En general, lo mejor es evitar las ventanas emergentes con scripts de ventana cruzada).