Controlla se una finestra popup è già aperta prima di aprirla usando Jquery

Voglio controllare se una finestra popup è già aperta, prima di aprire la finestra popup. Come faccio a farlo usando Jquery?

Di seguito è riportato il mio codice per aprire una nuova finestra popup:

window.open("mystopchat.php?stat=1&session="+data['myid1']['session_id'][i],"win1","width=500,height=500"); 

Ora prima chiamo questo, voglio essere sicuro che questa finestra popup non sia già aperta.

Questo è un piccolo trucco che uso, forse potresti usarlo:

  var winRef; //This holds the reference to your page, to see later it is open or not function openWindow() { var url = //Your URL; if (typeof (winRef) == 'undefined' || winRef.closed) { //create new, since none is open winRef = window.open(url, "_blank"); } else { try { winRef.document; //if this throws an exception then we have no access to the child window - probably domain change so we open a new window } catch (e) { winRef = window.open(url, "_blank"); } //IE doesn't allow focus, so I close it and open a new one if (navigator.appName == 'Microsoft Internet Explorer') { winRef.close(); winRef = window.open(url, "_blank"); } else { //give it focus for a better user experience winRef.focus(); } } } 

Spero che sia d’aiuto.

 var popup; function openPopupOneAtATime() { if (popup && !popup.closed) { popup.focus(); /* or do something else, eg close the popup or alert a warning */ } else { popup = window.open(...); } } 

prova questo (saprai se è stata chiamata la finestra aperta):

 var isOpen = "false"; function OpenPopup() { if(isOpen == "false") { isOpen = "true"; window.open("mystopchat.php?stat=1&session="+data['myid1']['session_id'] [i],"win1","width=500,height=500"); } } 
 var newWindow = null; function openwindow() { // open the new window only if newWindow is null (not opened yet) // or if it was closed if ((newWindow == null) || (newWindow.closed)) newWindow = window.open(...); } 

Ecco il mio suggerimento:

 function authorize(callback) { if(!document.authorize) { console.log('Opening authorization window...'); document.authorize = window.open('popup.html','tw','width=300,height=200'); } if(document.authorize.closed) { console.log('Authorization window was closed...'); setTimeout(callback,0); } else { setTimeout(function(){ console.log('Authorization window still open...'); authorize(callback); },1000); } return false; } function test() { authorize(function(){ alert('teste'); }); }