Javascript: busque una ventana abierta duplicada

¿Es posible comprobar si la misma ventana ya está abierta?

Por ejemplo, he abierto una ventana a través de javascript.

¿Puedo comprobar si está abierto en otra página a través de JavaScript?

Solo quiero centrarse en la página si ya se ha abierto para evitar ventanas duplicadas.

Gracias;)

preguntado el 09 de enero de 11 a las 11:01

3 Respuestas

Mirar window.open() método. Debe especificar el nombre de la ventana como segundo parámetro. Si ya existe una ventana con ese nombre, la nueva URL se abrirá en la ventana ya existente, consulte http://www.w3schools.com/jsref/met_win_open.asp

Si realmente desea verificar, si la ventana se abre con sus propios scripts, entonces debe mantener una referencia a la ventana abierta en una variable global o me gusta y crearla con

var myOpenedWindow = myOpenedWindow || window.open(URL, "MyNewWindow");

También puede encapsular este comportamiento en un método:

var myOpenWindow = function(URL) {
    var myOpenedWindow = myOpenedWindow || window.open(URL, "MyNewWindow");
    myOpenedWindow.location.href= URL;
    myOpenedWindow.focus();
}

Y llama a esa función con myOpenWindow('http://www.example.com/');

Respondido el 09 de enero de 11 a las 14:01

Gracias amigo por esta solución;) - Alguien

En los navegadores más nuevos, también puede usar BroadcastChannel para detectar pestañas duplicadas. - Anderson Green

Si tiene una ventana padre-hijo, aquí hay una solución que le permitirá verificar si una ventana secundaria está abierta desde el padre que la inició. Esto traerá un foco a la ventana secundaria sin recargar sus datos:

 <script type="text/javascript">
    var popWin;
    function popPage(url)
    {
       if (popWin &! popWin.closed && popWin.focus){
           popWin.focus();
       } else {
          popWin = window.open(url,'','width=800,height=600');
      }
    }
</script>

    <a href="http://www.xzy.com"
onclick="popPage(this.href);return false;">link</a>

una cosa más :: --- Si el usuario actualiza la ventana principal, puede perder todas sus referencias a cualquier ventana secundaria que haya tenido abierta.

Espero que esto ayude y hágame saber el resultado

Respondido el 09 de enero de 11 a las 14:01

Esto ayudará si desea abrir una URL desde un enlace.

 var Win=null;
function newTab(url){
//var Win; // this will hold our opened window

// first check to see if the window already exists
if (Win != null) {
// the window has already been created, but did the user close it?
// if so, then reopen it. Otherwise make it the active window.
if (!Win.closed) {
  Win.close();
//   return winObj;
}

 // otherwise fall through to the code below to re-open the window
 } 

 // if we get here, then the window hasn't been created yet, or it
 // was closed by the user.
 Win = window.open(url);

 return Win; 

 }
 newTab('index.html');

Respondido el 05 de Septiembre de 13 a las 13:09

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.