2010-11-09 9 views
0

Comment puis-je modifier cela afin de vérifier si une fenêtre contextuelle est déjà ouverte?Vérifiez si la fenêtre contextuelle est déjà ouverte

function popUp(URL) { 
    day = new Date(); 
    id = day.getTime(); 
    eval("page" + id + " = window.open(URL, '" + id + "', 'toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=1,width=350,height=100');"); 
} 

///////////// Modifier No2

var options = "toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=1,width=350,height=100";

var popup = window.open(URL, "popup", options);

function popUp(URL) { day = new Date(); id = day.getTime(); eval("page" + id + " = window.open(URL, '" + id + "', 'toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=1,width=350,height=100');"); }

appel js Mon

<a id="floating_link" href="javascript:popUp('MyPage.html')">Player</a>

+0

noooooooooooo !!!!!!!!!!!!! eval #ftf! –

+0

Ce n'est pas un callback http, c'est juste en utilisant des variables locales. Cela ressemble à une utilisation assez sûre d'eval. Se détendre. –

+0

@Travis, Oui, je vois, mais quand même ... –

Répondre

0

Mon réponse est à this question liée à ici.

Vérifiez le code suivant.

Vous pouvez utiliser onbeforeunload pour obtenir un rappel avant le déchargement de la fenêtre.

Pour vérifier si cela est dû à window.close faire

setTimeout(function(){ 
     if(anc.closed) console.log('closed'); 
     else console.log('refreshed'); 
    },1000); // to check after the window closed 

CODE COMPLET

var anc = window.open('https://stackoverflow.com'); 

var anc.onbeforeunload = function() { // called before closing the window. 

    setTimeout(function() { 
    if (anc.closed) console.log('closed'); 
    else console.log('refreshed'); 
    }, 1000); // to check after the window closed 

} 
+0

Astuce génial Nadir, merci pour cela! – detonate

1

Utilisez la même id pour la fenêtre, qui est le nom de la fenêtre, de le réutiliser si elle existe.

http://www.w3schools.com/jsref/met_win_open.asp

var options = "toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=1,width=350,height=100"; 
var popup = window.open(URL, "popup", options); 

Pour ce faire, avec une balise d'ancrage vous définissez juste la target

Si vous définissez un objectif de balise d'ancrage target="myopup" il utilisera la même fenêtre si elle existe

+0

Collage des dernières modifications de code en haut de la page ici – detonate

+0

Votre dernière révision fonctionne-t-elle? – hunter

+0

Aucun n'a pas été en mesure de le faire fonctionner. Auriez-vous une autre recommandation Hunter. Ce serait bien si le bouton sur la page principale pouvait aussi basculer ... – detonate

Questions connexes