Check if popup is open before opening it with jQuery

I want to check if a popup is open before opening a popup. How to do it using jQuery?

Below is my code to open a new popup:

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

Now, before I call this, I want to make sure that this pop-up is not yet open.

+6
source share
5 answers

This is a little trick I'm using, maybe you could use it:

  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(); } } } 

Hope this helps.

+8
source
 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(...); } } 
+4
source
 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(...); } 
0
source

try this (you'll find out if the window was open):

 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"); } } 
0
source

Here is my suggestion:

 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'); }); } 
0
source

Source: https://habr.com/ru/post/917366/


All Articles