Compruebe si la window ya está abierta window.open

Tengo una página html. En el cuerpo de la página estoy llamando al evento onload que llama a la function javascript para abrir una window emergente. aquí está el código:

 var newWindow = null; function launchApplication() { if ((newWindow == null) || (newWindow.closed)) { newWindow = window.open('abc.html','','height=960px,width=940px'); } } 

cuando me muevo a otra página, y vuelvo a esa página nuevamente, la window emergente se vuelve a abrir, aunque ya está abierta. Por favor, guíame en la dirección correcta, de modo que si la window emergente ya está abierta, no debería volver a abrirse. Probé document.refernetworking pero requiere el sitio en línea, actualmente estoy trabajando sin connection.

 newWindow = window.open('abc.html','com_MyDomain_myWindowForThisPurpose','height=960px,width=940px'); 

Dale un nombre a la window. Basar el nombre en su dominio de este modo evita las posibilidades de que elija un nombre que haya elegido otra persona.

Nunca invente un nombre que comience con _ , estos están reservados para nombres especiales que el browser trata de manera diferente (igual que con el atributo "objective" de los elementos de anclaje).

Tenga en count que si la window de ese nombre se abrió con diferentes opciones (por ejemplo, altura diferente), entonces mantendrá esas opciones. Las opciones aquí solo tendrán efecto si no hay una window con ese nombre, por lo que puede crear una nueva.

Editar:

Tenga en count que el "nombre" es de la window, no del contenido. No afecta el título ( newWindow.document.title afectará eso, como por supuesto codificará en abc.html ). Afecta otros bashs de hacer cosas en Windows. Por lo tanto, otra window. window.open con el mismo nombre reutilizará esta window. También un enlace como <a href="def.html" target="com_MyDomain_myWindowForThisPurpose">clicky!</a> lo volverá a utilizar. Se aplican advertencias normales sobre los browseres que resisten la apertura de windows en varios escenarios (locking de windows emergentes).

Para abrir una window y mantener una reference entre la actualización de la página.

 var winref = window.open('', 'MyWindowName', '', true); if(winref.location.href === 'about:blank'){ winref.location.href = 'http://example.com'; } 

o en formatting de function

 function openOnce(url, target){ // open a blank "target" window // or get the reference to the existing "target" window var winref = window.open('', target, '', true); // if the "target" window was just opened, change its url if(winref.location.href === 'about:blank'){ winref.location.href = url; } return winref; } openOnce('http://example.com', 'MyWindowName'); 

Puede verificar si la window está abierta o cerrada reasignando una reference a ella cuando se cierra. Ejemplo:

 var newWindow; var openWindow = function(){ newWindow = newWindow || window.open('newpage.html'); newWindow.focus(); newWindow.onbeforeunload = function(){ newWindow = null; }; };