IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Close or Not close


Sujet :

JavaScript

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    224
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 224
    Par défaut Close or Not close
    Bonjour

    Je cherche à ouvrir ou fermer une fenêtre, dans une page qui se rafraichit chaque minute, avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    if ( varglobale > 0 ) { refreshinfos () ; }
    else { closeinfos () ; }
    et varglobale = 0 ou 1 suivant les cas.

    Les deux fonctions :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    function refreshinfos ()
    	{ infos=window.open('…'); }
     
    function closeinfos () { if (infos != null) { infos.close(); infos = null; } }
    La situation:
    - quand varglobale devient = 1, la fenêtre s’ouvre correctement
    - quand varglobale redevient = 0, la fenêtre ne se referme pas

    Naturellement, j’ai essayé en inversant la condition ( varglobale == 0, …) mais le résultat est le même.

    Aussi, dans les deux fonctions, j’ai mis des document.write qui impriment bien et montrent que l’exécution des deux fonctions se fait.

    Cette fonction Close fonctionne très bien quand je l'active avec un bouton et, là, la fenêtre se ferme.

    Merci par avance de toutes vos suggestions.

    Francois

  2. #2
    Membre confirmé Avatar de Capt. Flame
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    222
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2005
    Messages : 222
    Par défaut
    Est-ce que "infos" est déclaré globalement?

    ... Attend, est-ce que ces fonctions se retrouvent dans une page qui se rafraichit?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    224
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 224
    Par défaut
    bonjour Captain

    Voila:
    - la déclaration:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <script language="JavaScript" type="text/javascript">
    	var infos = null;
    function afficheinfos ()
    	{ 
                  ......
    - la page se rafraîchit avec:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <meta http-equiv="refresh" content="20; url="#" />
    Merci de ton aide.

    Francois

  4. #4
    Membre Expert
    Inscrit en
    Septembre 2002
    Messages
    2 307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 307
    Par défaut
    toute les 20s ta variable devient null !
    Peux tu essayer le bouton après le temps dépassé?

  5. #5
    Membre confirmé Avatar de Capt. Flame
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    222
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2005
    Messages : 222
    Par défaut
    Si la variable est dans la page qui se rafraichit, c'est certain que ta variable va perdre sa valeur... L'ensemble du javascript est réinitialisé à chaque fois que la page se recharge...

    C'est exactement pour cette raison que l'architecture AJAX a de plus en plus d'adeptes... Je crois que tu devrais regarder de ce côté si tu veux récupérer des valeurs du serveur sans pour autant perdre ton contexte javascript...

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    224
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 224
    Par défaut
    Aïe, je ne vous avais pas tout dit, par oubli; voici un peu plus:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    varglobale = <?php echo $repinfos ; ?> + <?php echo $rappel ; ?> ; 
    					document.write ( "varglobale:" + varglobale + ( varglobale > 0 ) + "<br>" );
     
    if ( varglobale > 0 ) { refreshinfos () ;  }
    else { closeinfos () ;   }
    Le document.write est là en test pour vérification; la valeur de varglobale s'affiche correctement à 0 ou 1 suivant les cas.

    Donc la valeur de varglobale est correcte; c'est le test ensuite qui n'actionne pas le Close, apparemment.

    En espérant être plus complet cette fois ci.

    Francois

  7. #7
    Membre Expert
    Inscrit en
    Septembre 2002
    Messages
    2 307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 307
    Par défaut
    Je parle de ta variable
    infos

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    224
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 224
    Par défaut
    bonjour Matthieu

    Effectivement, tu pourrais bien avoir mis dans le mille; en effet, voici la fonction Closeinfos:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    function closeinfos () { if (infos != null) {infos.close(); infos = null; } }
    Avec le Refresh, la variable infos doit vraisemblablement disparaître.

    Si elle disparaît, ça expliquerait que le Close ne se fasse pas.

    Proposition: et si j'enlevais if (infos != null) ?

    Mon Close se ferait dans tous les cas.

    Ca nuirait?

    Merci à tous de votre aide.

    Francois

  9. #9
    Membre Expert
    Inscrit en
    Septembre 2002
    Messages
    2 307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 307
    Par défaut
    enlève le refresh et récupère les données via ajax...

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    224
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 224
    Par défaut
    Aïe, le Refresh m'est utile et j'aimerai bien le conserver.

    Si j'enlevais if (infos != null), ça pose un problème ?

    Où pourrais je commencer à lire qqechoose sur Ajax?

    Francois

  11. #11
    Membre Expert
    Inscrit en
    Septembre 2002
    Messages
    2 307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 307
    Par défaut
    teste le.
    après 20 s tu auras une erreurs...

  12. #12
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    224
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 224
    Par défaut
    Je l'ai testé mais ça n'a rien changé.

    J'ai commencé à regarder Ajax, un petit début.

    Question: quel type de solution avec Ajax? quel bibliothèque utiliser?

    Merci par avance.

    Francois

  13. #13
    Membre confirmé Avatar de Capt. Flame
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    222
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2005
    Messages : 222
    Par défaut
    Il y a plusieurs solution possibles. Mais disons que prototype, jQuery et mootools sont les plus populaires pour ce qui est du "core". Pour les "widgets", ce n'est pas les librairies qui manquent, une petite recherche sur google te permetera de faire une sélection...

    Mais avant tout, je te propose de faire un tutorial pour bien comprendre les bases de la technique. Après, l'utilisation d'un "framework" simlpifie vraiment la vie... Pour ma part j'utilise Prototype/Scriptaculous...

    Bonne chance...

  14. #14
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    224
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 224
    Par défaut
    Merci de ta réponse, je vais creuser ce sujet nouveau pour moi.

    Francois

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Close or not close
    Par thierryler dans le forum Entrée/Sortie
    Réponses: 9
    Dernier message: 22/09/2011, 11h40
  2. Erreur "</body> does not close tag <HR>"
    Par sonson85 dans le forum Tomcat et TomEE
    Réponses: 2
    Dernier message: 28/05/2011, 21h40
  3. [XL-2003] Workbooks_Open before close et workbooks.close
    Par david_atx dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 21/08/2009, 11h07
  4. Réponses: 2
    Dernier message: 19/04/2005, 16h29
  5. Réponses: 8
    Dernier message: 21/11/2003, 19h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo