No. Sin una referencia a la ventana, no puede encontrarla de nuevo, por nombre o de otro modo. No hay una colección de ventanas.
ACTUALIZACIÓN: Así es como se podría hacer usted mismo:
var windows = {};
function openWindow(url, name, features) {
windows[name] = window.open(url, name, features);
return windows[name];
}
Ahora, openWindow
siempre habrá abrir la ventana, y si la ventana ya existe, se carga la URL dada en esa ventana y el retorno una referencia a esa ventana. Ahora también se puede aplicar findWindow
:
function findWindow(name) {
return windows[name];
}
que devolverá la ventana si existe, o undefined
.
También debe tener closeWindow
, por lo que no se mantienen las referencias a las ventanas que abrió a sí mismo:
function closeWindow(name) {
var window = windows[name];
if(window) {
window.close();
delete windows[name];
}
}
Si no es posible, lo que es el punto de dar nombres de las ventanas?
El nombre se usa internamente en el navegador para administrar ventanas. Si llama al window.open
con el mismo nombre, no abrirá una nueva ventana, sino que cargará la URL en la ventana abierta anteriormente. Hay unas cuantas cosas más, desde MDN window.open():
Si una ventana con el nombre strWindowName ya existe, entonces strURL se carga en la ventana existente. En este caso, el valor de retorno del método es la ventana existente y strWindowFeatures se ignora. Proporcionar una cadena vacía para strUrl es una forma de obtener una referencia a una ventana abierta por su nombre sin cambiar la ubicación de la ventana. Para abrir una nueva ventana en cada llamada de window.open(), use el valor especial _blank para strWindowName.
buena explicación y solución temporal. ¡Gracias! –
Esto puede estar bien para Windows pero no funciona en mi sistema Linux ... no estoy seguro de si es una referencia de Microsoft Windows o no, pero a veces lo que sucede en mi máquina Linux también ocurre en Mac ... – CrandellWS
Comenzando con Google Chrome 41, este método tiene un mal efecto secundario: siempre que ejecute window.open(), la ventana ya abierta tendrá el foco. Actualmente no hay ninguna solución que pueda encontrar para evitar este comportamiento, lo que me está dando dolores de cabeza. Solo quiero hacer referencia a esa ventana, no quiero que se concentre. Llamar a window.open() con la url vacía no funciona. – schlingel