Вопрос по javascript, jquery, html – Проверьте, открыто ли всплывающее окно, прежде чем открывать его с помощью Jquery.

8

Я хочу проверить, открыто ли всплывающее окно, прежде чем открывать всплывающее окно. Как мне сделать это с помощью Jquery?

Ниже приведен мой код для открытия нового всплывающего окна:

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

Теперь, прежде чем я позвоню, я хочу убедиться, что это всплывающее окно еще не открыто.

Пожалуйста, смотрите [этот пост] [1], который может помочь. [1]:stackoverflow.com/questions/4137297/… Anthony Atkinson
возьмите одну переменную ispopup в качестве переменной vable; установите значение false. после того, как открытое окно установлено в true как if (ispopup! = true) {window.open ()} else {// somothing его открытое;} Tamkeen

Ваш Ответ

5   ответов
0
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

попробуйте это (вы узнаете, вызывалось ли открытое окно):

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

Это небольшой трюк, который я использую, возможно, вы могли бы использовать его:

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

Надеюсь, поможет.

Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
0

Вот мое предложение:

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');
    });
}
5
var popup;
function openPopupOneAtATime() {
    if (popup && !popup.closed) {
       popup.focus();
       /* or do something else, e.g. close the popup or alert a warning */
    }
    else {
       popup = window.open(...);      
    }
}

Похожие вопросы