Si abro una ventana usando

window.open('myurl.html', 'windowname', 'width=100,height=100');

¿Cómo me refiero a la nueva ventana (desde la misma página que la abrió) usando 'windowname'? Esta pregunta es específicamente sobre esto. Soy consciente de que podría guardar una referencia al identificador usando "var mywin = window.open (...)" pero no me importa eso en esta situación.

Gracias Dave.

32
Dave 30 ago. 2011 a las 17:29

7 respuestas

La mejor respuesta

Afaik no hay manera como windows['windowname']. El 'nombre de ventana' asignado en window.open () se puede abordar como un objetivo en <a target="windowname" [...] >

-6
HBublitz 30 ago. 2011 a las 13:36

No es posible. WindowName solo se debe usar en target="..." de enlaces / formularios o para usar el mismo nombre nuevamente en otra llamada window.open para abrir una nueva URL en esa ventana.

0
ThiefMaster 30 ago. 2011 a las 13:35

Petr es correcta:

var w = window.open("", "nameofwindow");

Funciona en todos los navegadores, lo estoy usando para recuperar la referencia al objeto de ventana abierto previamente por una página diferente. El único problema es la apertura inicial de la página, si la ventana emergente no existe, aparecerá una nueva ventana con una página en blanco.

Intenté invocar una función Javascript dentro del contexto del otro documento para verificar si abrí una nueva ventana o recuperé la página ya activa. Si la verificación falla, solo invoco window.open nuevamente para cargar realmente mi contenido emergente:

var w = window.open("http://mydomain.com/myPopup", "nameofwindow");

Espero que eso ayude.

6
Johannes 7 mar. 2014 a las 03:49

Si no guardó una referencia a la ventana, entonces no hay forma de restaurarla. Sin embargo, si esa ventana aún está abierta y si la página cargada allí pertenece al mismo dominio que su página, puede ejecutar código JavaScript en ella:

window.open("javascript:doSomething()", "windowname");

Si eso es suficiente en su escenario depende de lo que está tratando de lograr.

20
Wladimir Palant 30 ago. 2011 a las 13:37

Intente abrir esa ventana con el nombre, pero la URL es '' nuevamente, para verificar si es una ventana en blanco o no. Si está abierto, obtendrá la ventana; si no, se abre una nueva ventana y necesita cerrarla. Agregar los hijos en localStorage ayudará a evitar que se abra la nueva ventana en blanco.

Verifique mi código en https://github.com/goldentom66/ParentChildWindow

0
Tom Jiang 10 ago. 2018 a las 03:36

Lo siento, estoy publicando tarde, pero si todavía tiene la otra ventana abierta y están en el mismo dominio, puede ejecutar, en la primera ventana:

function getReference(w) {
   console.log('Hello from', w);
}

Y en la segunda ventana:

window.opener.getReference(window);
0
CatPerson 13 sep. 2019 a las 14:02

En Firefox (también podría funcionar en otros navegadores, pero ahora no es mi problema) pude hacer referencia a una ventana a través de múltiples cargas de página con

var w = window.open("", "nameofwindow");

Esto abre una nueva ventana si no existe y devuelve la referencia a la ventana existente si existe sin cambiar el contenido de la ventana.

Con jQuery pude agregar nuevo contenido, para hacer una recopilación rápida de enlaces interesantes como este

$('body', w.document).append(link_tag);
18
Petr ''Bubák'' Šedivý 30 ago. 2013 a las 23:01