Fermer la page courante sans lien ni confirmation avec IE 7.0 et firefox

cs_loupile Messages postés 95 Date d'inscription dimanche 8 janvier 2006 Statut Membre Dernière intervention 7 avril 2011 - 15 févr. 2007 à 13:48
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 - 15 févr. 2007 à 22:08
Bonjour je cherche à fermer ma fenetre courante automatiquement .
en fait cette fenetre fait une requete sql et une fois la requete finie je veux qu'elle se ferme toute seule ! que faut il que j'utilise ?
j'ai vu cela mais ca ne marche pas . notemment sur firefox

<script>
opener=self;
     self.close();
</script>

merci de votre aide

11 réponses

lesdis Messages postés 403 Date d'inscription mercredi 19 avril 2006 Statut Membre Dernière intervention 7 août 2020
15 févr. 2007 à 14:02
Bonjour,

Que vaut self?

info sur la fonction close()
0
cs_loupile Messages postés 95 Date d'inscription dimanche 8 janvier 2006 Statut Membre Dernière intervention 7 avril 2011
15 févr. 2007 à 14:04
il vaut mieux le faire avec windows.close() ?
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
15 févr. 2007 à 14:23
Bonjour,

je suppose sans message de confirmation ???
( sinon window.close() le fait )

sans message :
avec IE6,
    opener=self;
    window.close();   
ça fonctionnait sans problème.

cela a toujours (?) été impossible avec FireFox.
avec IE7, il semblerait que cela ne soit plus permis.

Opera ( je crois ? ), K-Meleon ( si on l'autorise ) le permettent.

<hr />


Cordialement            Bul        
0
lesdis Messages postés 403 Date d'inscription mercredi 19 avril 2006 Statut Membre Dernière intervention 7 août 2020
15 févr. 2007 à 14:26
La fonction close() ne fonctionnne que sur une page qui a été ouverte grâce au script de la page mere.

Ainsi, il faut que tu ouvres le popup par l'intermediaire d'une page et que tu garde dans une variable le nom de cette page.
Ensuite, tu pourras appeler la fonction close().

Sur FF, l'appel de la fonction close() te renvoie une erreur si elle ne concerne pas une page précedemment ouverte par le script.
Sur IE, le navigateur te demande une confirmation.

Je ne sais pas si j'ai été très explicite, donc je te donne cette exemple :
<script>
var bl;
function fermer(){
bl.close();
}

function ouvrir(){
bl = window.open("http://www.google.com","fenetre1","width=310,height=400,left=0,top=0");
}
</script>

[javascript:fermer() fermer la page]

Bonne prog !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_loupile Messages postés 95 Date d'inscription dimanche 8 janvier 2006 Statut Membre Dernière intervention 7 avril 2011
15 févr. 2007 à 14:31
merci pour vos réponses,

lesdis peut on fermer la page courante sans en ouvrir d'autre et surtout sans lien ?
0
lesdis Messages postés 403 Date d'inscription mercredi 19 avril 2006 Statut Membre Dernière intervention 7 août 2020
15 févr. 2007 à 14:43
La fonction close peut-etre appelé a partir de n'importe quel élément. (input, a, etc.).

Par contre, d'après ce que j'ai pu lire, il n'est pas possible de fermer une fenêtre si celle-ci n'est pas enfant de ta page.
Si tu le fait, cela te demandera une confirmation sur IE et sur FF, cela te renverra une erreur.

Je ne peut t'en dire plus, vu que je n'est jamais utilisé cette fonction. Peut-être que Bultez pourra te donner de plus amples informations vu qu'il est sûrement plus calé que moi

Bonne prog
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
15 févr. 2007 à 15:00
>>...vu qu'il est sûrement plus calé que moi...

    sûrement pas
!!!

je me cite ?
                ...


                cela a toujours (?) été impossible avec FireFox.
                avec IE7, il semblerait que cela ne soit plus permis.
                ...
    les messages (d'erreurs ou pas) sont d'ailleurs explicites.

( sauf pour les fenêtres ouvertes avec windows.open
    ce que montrait l'exemple de ledis. )




<hr />



Cordialement            Bul        
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
15 févr. 2007 à 15:02
il fallait lire


"...l'exemple de lesdis..."
navré de la faute de frappe, d'inattention.




<hr />



Cordialement            Bul        
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
15 févr. 2007 à 15:05
j'ai oublié de préciser qu'avec un .hta[s] : pas de message.
mais ceci est une autre histoire : exclusif IE... alors..
<hr />


Cordialement            Bul        
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
15 févr. 2007 à 15:22
et d'ailleurs aussi, il est probable ( dis nous si on se trompe )
    que ce soit une page ouverte avec window.open pour ton cas !
    puisqu'elle "fait une requête sql et que tu désires la fermer
        ujne fois le boulot fait" !
==> dans le pop-up, lorsque la requête est faite, appelle
    une fonction dans la page mère qui fermera ce pop-up.
    par exemple.
<hr />


Cordialement            Bul        
0
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
15 févr. 2007 à 22:08
Salut,

Pour ne pas d'embeter utilise une fausse fenêtre popup. Un div par dessus ta page que tu positionne ou tu veux.

Sur le valider de ce div tu fait une requete AJAX,
qui interroge ta base de données.

Dans le onread...
Tu fermes ta div en la rendant invisible.

Et voila tout les problèmes, sont résolus.
NB, si des fois il faut rendre le AJAX synchrone (paramètre de open à false)
pour IE. Nornalement, tu n'auras pas besoin de changer ce paramètre.

Bon courage.
0
Rejoignez-nous