2012-01-25 40 views
6

en mi aplicación, tengo una ventana emergente con información que se abre cuando elijo algunas opciones.traer ventana emergente al frente

primera vez es OK, emergente hightlight delante de todo.

Pero, cuando pierde el foco, cuando el usuario va a otra ventana, si el usuario vuelve a hacer clic en la misma opción, quiero que esa ventana emergente vuelva a aparecer, delante de todo.

Trato algo como:

<body onLoad="this.focus()"> 
    window.focus(); 
    document.focus(); 
    this.focus(); 

pero dos no funciona para mí.

lo que me falta?

Respuesta

14

Debe mantener una referencia a la ventana emergente que abre y llamar al método de enfoque en ella.

var win = window.open(url, name, args); 
win.focus(); 

Al abrir una ventana emergente si se le da un nombre y la próxima vez cuando se abre una ventana emergente con el mismo nombre que utilizará el mismo emergente Si no está cerrado. Solo tienes que enfocarlo.

Se puede utilizar esta función simple de manejar ventanas emergentes

function windowOpener(url, name, args) { 

    if(typeof(popupWin) != "object" || popupWin.closed) { 
     popupWin = window.open(url, name, args); 
    } 
    else{ 
     popupWin.location.href = url; 
    } 

    popupWin.focus(); 
} 
+1

estoy probando en este momento y mirar como una buena solución, funciona bien en cromo y decir, pero en FF está actuando extraño. No sé cómo explicarte, pero cuando abro la ventana emergente (usando 'windowOpener') y luego abro otra, de una fuente de clic diferente, si hago clic en la ventana emergente que tiene' windowOpener', él no se enfoca en el frente de todo, esto solo sucede en FF. –

Cuestiones relacionadas