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í?