Hola de nuevo:
No sé si estoy perdido en el tema, ya son muchos post para una misma cuestión. Lo que quieres hacer es que si una ventana está abierta no se abra; y que si no está abierta se abra ¿es así?
Jugando con el
try & catch podría ser así:
Código PHP:
<button onclick="abreVentana('http://mipagina.com', 200, 200)">abrir si no esta abierta / cerrar la abierta</button>
<script type="text/javascript">
<!--
var ventana;
function abreVentana(url, ancho, alto) {
try { // existe
ventana.close();
}
catch(elError) { // no existe
ventana = window.open(url, "_blank", "width="+ancho+", height="+alto+", scrollbars=no, resizable=no, location= center");
}
return false;
}
// -->
</script>
En la parte del
try se ejecuta todo lo que quieras cuando la ventana existe (es decir, usas la variable
ventana sin problemas, y si da error entonces se captura). Por lo tanto si no existe, se ejecuta el catch().
Si quieres que se abra una nueva ventana en el
try no tienes más que duplicar la línea de
window.open().
¿Es así?