11548 sujets

JavaScript, DOM et API Web HTML5

BOnjour,

Comment arriver à faire cela ? E nce moment quand j'ouvre mon pop1, celui ci s'affiche mais quand j'ouvre le pop2, le premier reste affiché...

J'aimerais que le premier se ferme alors.

Mon script js a été pris ici sur un tuto... Merci (si je ne peux pas l'utiliser merci de me le préciser)


function pop()
{
    var myAs = document.getElementsByTagName('a');
    for (var a = 0; a < myAs.length; ++a) {
	// Si le lien a une classe de type pop
        if (myAs[a].className == 'pop') {
	// on extrait l'id de la popup à partir du href
            var pop = document.getElementById(myAs[a].href.substring(myAs[a].href.lastIndexOf('#') + 1));
	// si la popup existe on l'affiche (display block)
            if (pop) {       
                pop.style.display = 'none';
                myAs[a].onclick = function() {
                    thisPopup = document.getElementById(this.href.substring(this.href.lastIndexOf('#') + 1))
                    thisPopup.style.display = (thisPopup.style.display == 'none') ? 'block' : 'none';
                    return false;
                };
		// on efface la popup en cliquant dessus
                pop.onclick = function()
                {
                    this.style.display = 'none';
                };
            }
        }
    }
}
 
window.onload = pop;


Merci
Modérateur
bonjour,

essaye en ajoutant au debut de ta fonction ceci
if (pop){window.pop.close()};

qui en principe teste si la popup (pop) existe, et si c'est le cas on ferme, et on continue le script.

je ne garantie rien, vu mon taux d'ignorance extremement elevé en js Smiley confus
a plus
Modifié par gcyrillus (19 Oct 2005 - 15:49)
Bonjour.
Pourquoi à ce moment là ne pas réutiliser la même popup et la mettre en avant-plan ?

De plus ceci n'est possible que si entre le moment où tu ouvres pop1 et pop2, tu n'as pas changé de page.
Modérateur
bonjour QuentinC, je saute sur l'occasion, comment reutiliser la popup, parceque chez moi, avec tout les navigateurs ça le fait bien, sauf IE qui m'ouvre une nouvelle popup a chaque fois, et je ne peut fermer que la derniere qu'il a ouverte, elles sont toutes pourtant ouvertes avec le même code et même variable ?!?
(sur un autre pc je n'ai pas ce probleme !!?)
a plus
sinon, ma proposition est-elle bonne ? Smiley confused
a plus
Réutiliser une popup déjà ouverte :


Javascript :

var pop = null;
function popup (url) {
if (pop && !pop.closed) {
pop.location = url;
pop.focus();
}
else pop = window.open(url);

return !pop;
}

XHTML : 
<a href="popup_page.html" onclick="return popup(this.href);">Ouvrir (nouvelle fenêtre)</a<