Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript
JavaScript Forum programmation JavaScript. Lire : Cours JavaScript, FAQ JavaScript, Toutes les FAQ JavaScript et Sources JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 30/01/2011, 12h47   #1
Invité de passage
 
Inscription : mai 2007
Messages : 5
Détails du profil
Informations personnelles :
Âge : 72

Informations forums :
Inscription : mai 2007
Messages : 5
Points : 2
Points : 2
Par défaut fermeture fenêtre pop

Bonjour à tous,
je ne comprend rien au javascript et le peu que j'utilise, je l'ai glané sur divers forum.

J'ai une fonction pop-up qui fonctionnait très bien jusqu'à ce que j'envisage d'introduire des petites vidéos sur mon site. Malheureusement le clic sur le bouton de lancement de la vidéo se confond avec le clic de fermeture de la fenêtre.

Pour éviter le problème, j'ai envisagé de créer un bouton extérieur à la fenêtre pop pour la fermer en cliquant dessus, MAIS !!!!!

malgré les nombreuses lectures du code utilisé, je n'arrive pas à comprendre ce que je dois modifier dans le code javascript ci dessous pour que le clic de fermeture ne fonctionne que quand on clique sur le bouton extérieur à la fenêtre ouverte ?.

le bouton crée est "ferm-fenetre.gif"

le code javascript gérant les fonctions


Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
 
 
function unpopall()
{
    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';
            }
        }
    }
}
 
 
 
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))
                    unpopall();
                    thisPopup.style.display = (thisPopup.style.display == 'none') ? 'block' : 'none';
                    return false;
                };
  // on efface la popup en cliquant sur le bouton ou la fenêtre
                pop.onclick = function()
                {
                    this.style.display = 'none';
                };
            }
        }
    }
}


le problème est visible sur la page

http://www.cisalpin.com/pages/trains/choix_trains.html

rubrique vidéo

un spécialiste du javascript peut-il m'indiquer comment modifier le code pour que la fonction fermeture de la fenêtre ne fonctionne que par clic sur le bouton "ferm-fenetre.gif".

Merci d'avance d'avance de vos conseils
helvetdulac est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2011, 13h24   #2
Invité de passage
 
Inscription : juin 2007
Messages : 14
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 14
Points : 4
Points : 4
Cette partie là est probablement de trop :

Code :
1
2
3
4
pop.onclick = function()
                {
                    this.style.display = 'none';
                };

Attribue un id à ton bouton de fermeture :

Code :
<input type="button" id="id_du_bouton" src="tonbouton.gif" />

et ensuite :

Code :
1
2
3
4
document.getElementById('id_du_bouton').onclick = function () {
 var pop = document.getElementById(myAs[a].href.substring(myAs[a].href.lastIndexOf('#') + 1));
 pop.style.display = 'none';
}
Canopus est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h20.


 
 
 
 
Partenaires

Hébergement Web