[javascript ] évènement onblur
Fermé
Lilouse64
Messages postés
99
Date d'inscription
lundi 1 mars 2010
Statut
Membre
Dernière intervention
9 avril 2012
-
Modifié par Lilouse64 le 5/05/2010 à 14:13
Diony - 29 janv. 2011 à 19:28
Diony - 29 janv. 2011 à 19:28
A voir également:
- [javascript ] évènement onblur
- Telecharger javascript - Télécharger - Langages
- Javascript void 0 c'est quoi ✓ - Forum Réseaux sociaux
- Un evenement inattendu s'est produit league of legends - Forum Jeux PC
- Javascript est activé mais ne fonctionne pas ✓ - Forum Réseaux sociaux
- Onglet évènement facebook disparu ✓ - Forum Facebook
1 réponse
Lilouse64
Messages postés
99
Date d'inscription
lundi 1 mars 2010
Statut
Membre
Dernière intervention
9 avril 2012
12
Modifié par Lilouse64 le 5/05/2010 à 15:58
Modifié par Lilouse64 le 5/05/2010 à 15:58
J'ai trouvé une alternative qui ne marche toujours pas sur internet explorer. Au lieu de demander la fermeture sur un évènement de la fenêtre fille, je le fais sur un évènement de la fenêtre mère. J'exécute une fonction closefenetre suite à l'évènement d'un clique sur la fenêtre mère ou à la fermeture de la fenêtre. Il n'y a que le cas ou on clique complètement ailleur mais notre pop up sera fermé à un moment donné sans avoir un empilement de fenêtre.
Lorsque je clique sur le bouton qui me permet d'ouvrir le popup je me retrouve à d'abord exécuter la fonction qui me permet de l'ouvrir puis la fonction qui me permet de la fermer du coup le pop up se fermait et se rouvrait en suivant. J'ai donc ajouter une autre variable qui m'informe si on peux fermer ou pas le popup. cette variable est à true par défaut.
ma fonction d'ouverture :
ma fonction de fermeture :
// fermer le popup
function closefenetre(){
// es ce qu'il y a un pop up
if (popup){
// es ce qu'on a le droit de le fermer
if(touchepopup){
popup.close();
}
}
// on prend le droit de le fermer pour la fois suivante
touchepopup=true;
}
Sur firefox je n'ai aucun soucis, le problème vient encore de internet explorer.
J'ai trois cas et un seul me pose problème :
- fermer lors de la fermeture de la page mère -> ok
- fermer lors d'un clique sur le bouton d'ouverture -> ok (avec l'ouverture de la fenêtre suivante qui fonctionne aussi)
- fermer lors d'un clique sur la page autre que sur le bouton -> ne fonctionne pas
EDIT : en faite quand on clique sur un des éléments qui compose la page (même si c'est juste du texte, ça marche aussi mais pas quand on clique dans un endroit complètement vide.
Lorsque je clique sur le bouton qui me permet d'ouvrir le popup je me retrouve à d'abord exécuter la fonction qui me permet de l'ouvrir puis la fonction qui me permet de la fermer du coup le pop up se fermait et se rouvrait en suivant. J'ai donc ajouter une autre variable qui m'informe si on peux fermer ou pas le popup. cette variable est à true par défaut.
ma fonction d'ouverture :
function openfenetre(text,event){ //s'il y avait déja un pop up on le ferme if(popup){ popup.close(); } // on ouvre le pop up var e=event; var dleft=e.screenX; var dtop=e.screenY-(140/2); popup=open("fenetre.php?text=" + text,"couleurs" ,"top=" + dtop + ", left=" + dleft + ", height=140, width=140, directories=no, menubar=no, status=no, scrollbars=no, location=no, resizable=no"); // on interdit la fermeture lors de l'execution de la fonction de fermeture qui suit qui suit touchepopup=false; }
ma fonction de fermeture :
// fermer le popup
function closefenetre(){
// es ce qu'il y a un pop up
if (popup){
// es ce qu'on a le droit de le fermer
if(touchepopup){
popup.close();
}
}
// on prend le droit de le fermer pour la fois suivante
touchepopup=true;
}
Sur firefox je n'ai aucun soucis, le problème vient encore de internet explorer.
J'ai trois cas et un seul me pose problème :
- fermer lors de la fermeture de la page mère -> ok
- fermer lors d'un clique sur le bouton d'ouverture -> ok (avec l'ouverture de la fenêtre suivante qui fonctionne aussi)
- fermer lors d'un clique sur la page autre que sur le bouton -> ne fonctionne pas
EDIT : en faite quand on clique sur un des éléments qui compose la page (même si c'est juste du texte, ça marche aussi mais pas quand on clique dans un endroit complètement vide.
29 janv. 2011 à 19:28
En reprenant ton idée, il est plus simple de faire :
<body onFocus="closepopup();">
avec
function closepopup() {
if(popup) popup.close();
}
Comme ça, pas besoin de gérer plusieurs flags, ni d'appeler du javascript à plusieurs endroits: dès qu'on clique sur la fenêtre principale, le popup est fermé.
Cerise sur le gateau,: ça marche même si le popup est déjà fermé (window.close dans le popup). Je pensais que javascript ralerait qu'on lui demande de fermer une fenêtre qui n'existe plus, mais non !