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 :

Ne pas rafraîchir une page


Sujet :

JavaScript

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 23
    Par défaut Ne pas rafraîchir une page
    Bonjour,

    J'ai deux pages, une fenêtre normale et un popup, j'ai fais en sorte que lorsque je clique sur le lien de la fenêtre normale le popup apparaît, puis quand je clique sur le lien sur le popup cela m'ouvre la page principale, le problème c'est que je ne veux pas quand je reclique sur le lien pour aller au popup, que celui-ci soit réactualiser car il y a une zone de texte, ci-joint les deux pages:

    Page mère:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <HTML>
    <SCRIPT>
    function ouvrepopup() {
     win=window.open('popup.html','maPopup');
    }
    </SCRIPT>
    <BODY>
    <input type="button" onClick="javascript:ouvrepopup()">
    </BODY>
    </HTML>
    Page popup:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <HTML>
    <SCRIPT>
    function f_load() {
      window.focus();
    }
    </SCRIPT>
    <BODY onLoad="javascript:f_load()">
    <p align="center"><a href="mere.html" target="_blank">Cliquez ici pour écrire votre compte rendu</a></p>
    <p>
     <textarea name="champs de texte" id="champs de texte" cols="35" rows="20"></textarea>
    </p>
    </BODY>
    </HTML>

  2. #2
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    1 051
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 051
    Par défaut
    Me semble que tu ne peux pas avoir 2 popup ouvert ..

    Peut-être utiliser jquery avec lightbox ? Ca permet d'ouvrir des fenêtres à la façon popup sans bordure etc ...

  3. #3
    Expert éminent

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Par défaut
    Bonjour,

    Avec du Javascript, vous pourriez annuler l'action de ouvrepopup une fois la pop up ouverte, et ensuite la réactivée une fois la pop up fermée.

  4. #4
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Le mieux est de tester si la popup existe lors du clic.
    Si elle existe, lui donner le focus, sinon l'ouvrir.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 23
    Par défaut
    La deuxième fenêtre s'ouvre bien au premier plan lorsque dans la fenêtre mère je clique sur le lien, le seul truc c'est que je ne veux pas qu'elle soit rafraichit à chaque fois que je clique sur le lien pour y accéder

  6. #6
    Expert éminent

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Par défaut
    Mettez en place ce conseil-ci :

    Citation Envoyé par Bovino Voir le message
    Le mieux est de tester si la popup existe lors du clic.
    Si elle existe, lui donner le focus, sinon l'ouvrir.

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 23
    Par défaut
    Oui le popup existe et le focus et là quand je clique pour le faire apparaitre, mais quand je clique à chaque fois ca rafraichit le popup, et je ne veux pas

  8. #8
    Expert éminent

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Par défaut
    Oui c'est parce que vous appelez toujours cette instruction-ci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    win=window.open('popup.html','maPopup');
    La proposition de Bovino est de mettre un if autour de l'instruction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    if(win)
    {
        win.focus();
    }
    else
    {
        window[win]=window.open('popup.html','maPopup');
    }

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 23
    Par défaut
    Ok merci beaucoup, j'ai remplacer par ce que tu m'as dis, mais le popup s'ouvre plus, suis désolé suis débutant en html , je te mets le code que j'ai mis.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    <HTML>
    <SCRIPT>
    function ouvrepopup() {
    if(win)
    {
        win.focus();
    }
    else
    {
        window[win]=window.open('popup.html','maPopup');
    }
     
    }
    </SCRIPT>
    <BODY>
    <input type="button" onClick="javascript:ouvrepopup()">
    </BODY>
    </HTML>

  10. #10
    Membre éclairé Avatar de Billy KiT
    Inscrit en
    Mars 2011
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 66
    Par défaut
    Salut, if (win) ça a eu marché, mais ça marche plus.
    Je suis aussi intéressé par une solution, car "tester l'existence d'une pop-up" ne semble pas si simple !
    win est au départ indéfini => erreur
    On peut peut-être corriger en faisant précéder :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (typeof(win)=='undefined') {win=false;}
    Mais ça marche pas car même en fermant la pop-up, win contient toujours un objet.
    Alors on peut essayer de tester une propriété de win, par exemple :
    fonctionne sous chrome uniquement et donne une erreur extraordinaire sur IE quand on a fermé la pop-up :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    L’appelé (serveur [pas application serveur]) n’est pas disponible et a disparu ; aucune connexion n’est valide. L’appel ne s’est pas exécuté.
    merci d'avance ...

  11. #11
    Membre chevronné Avatar de nadox
    Homme Profil pro
    Développeur
    Inscrit en
    Février 2010
    Messages
    360
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2010
    Messages : 360
    Par défaut
    Bonjour,

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    var win;
    function ouvrepopup() {
    	if(window[win])
    	{
    		window[win].focus();
    	}
    	else
    	{
    		window[win]=window.open('tests.htm','maPopup');
    	}
    }

    EDIT: j'ai posté en même temps, c'est vrai que ça ne fonctionne pas non plus si on referme la popup...

  12. #12
    Membre chevronné Avatar de nadox
    Homme Profil pro
    Développeur
    Inscrit en
    Février 2010
    Messages
    360
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2010
    Messages : 360
    Par défaut
    http://javascript.developpez.com/faq...re#EtatFenetre

    Bon ce code doit marcher (testé sur ie8 et chrome) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    var win;
    function ouvrepopup() {
    	if(window[win] && window[win].closed == false)
    	{
    		window[win].focus();
    	}
    	else
    	{
    		window[win]=window.open('tests.htm','maPopup');
    	}
    }

  13. #13
    Expert éminent

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Par défaut
    Si vous déclarez la variable globale en dehors de la fonction :

    Ne la redéclarez pas dans la fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    window[win]=
     
    // devient
     
    win=
    Instruction qui était erronée dans mon exemple. Ca devait être :


  14. #14
    Membre chevronné Avatar de nadox
    Homme Profil pro
    Développeur
    Inscrit en
    Février 2010
    Messages
    360
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2010
    Messages : 360
    Par défaut
    Oui Vermine ! Je ne sais pas trop pourquoi j'ai utilisé cette erreur comme exemple

    Voici un code un peu plus propre, qui fonctionne, et qui permet de gérer plusieurs popup...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    <html>
    <head>
    <script type="text/javascript">
    var wins = [];
    function ouvrepopup(url,ident) {
    	if(wins[ident] && wins[ident].closed == false)
    	{
    		wins[ident].focus();
    	}
    	else
    	{
    		wins[ident] = window.open(url,ident, config='height=100, width=400, toolbar=no, menubar=no, scrollbars=no, resizable=no, location=no, directories=no, status=no');
    	}
    }
    </script>
    </head>
    <body>
    <input type="button" onclick="ouvrepopup('popup.htm','maPopup1');" value="ouvrir popup1">
    <input type="button" onclick="ouvrepopup('popup.htm','maPopup2');" value="ouvrir popup2">
    </body>
    </html>

  15. #15
    Membre éclairé Avatar de Billy KiT
    Inscrit en
    Mars 2011
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 66
    Par défaut
    Merci nadox, nickel chrome ! (heu ... avec FF aussi )

  16. #16
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 684
    Par défaut
    j'aurais même dit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    var win;
     
    function ouvre(){
    	if(!win || win.closed){
    		win=window.open("test.htm","page1","")
    	}
    	else {
    		win.focus()
    	}
    }

  17. #17
    Membre averti
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 23
    Par défaut
    Alors j'ai mis le code que vous m'avez dit, mais j'ai toujours le même problème, les fenêtres s'ouvrent à chaque fois dans une autre fenêtre, ma fenêtre popup ne s'ouvre pas dans l'unique fenêtre comme avant

  18. #18
    Membre averti
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 23
    Par défaut
    Et voila les deux fichiers, le premier et le principale, et le fichier popup. Vous pouvez essayer sur IE ca ne marche pas. J'ai peut être mal mis le code. Mais avant j'avais bien ma fenêtre popup qui s'ouvrait dans une fenêtre indépendante, et qui se remettait en avant lorsqu'on clique sur le lien pour y accéder. Je voulais seulement que le popup ne soit pas actualisé lorsqu'on clique sur le lien de la page principale.
    Fichier principale.
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    <html>
    <head>
    <script type="text/javascript">
    var win;
    function ouvrepopup() {
            if(window[win] && window[win].closed == false)
            {
                    window[win].focus();
            }
            else
            {
                    window[win]=window.open('tests.htm','maPopup');
            }
    }
     
     </script>
     </head>
     <body>
    <a href="popup.html" onclick="return ouvrepopup();">texte du lien</a>
    </body>
    </html>

    Fichier popup:
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <HTML>
    <SCRIPT>
    function f_load() {
      window.focus();
    }
    </SCRIPT>
    <BODY onLoad="javascript:f_load()">
    <p align="center"><a href="mere.html" target="_blank">Cliquez ici pour écrire votre compte rendu</a></p>
    <p>
     <textarea name="champs de texte" id="champs de texte" cols="35" rows="20"></textarea>
    </p>
    </BODY>
    </HTML>

  19. #19
    Membre averti
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 23
    Par défaut
    Bien évidemment j'ai remplacé test.htm par popup.htm

  20. #20
    Membre chevronné Avatar de nadox
    Homme Profil pro
    Développeur
    Inscrit en
    Février 2010
    Messages
    360
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2010
    Messages : 360
    Par défaut
    Puisque tu ne semble pas vraiment comprendre les différents code qu'on a mis, pour ton cas ce code doit faire l'affaire... :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    <html>
    <head>
    <script type="text/javascript">
    var win;
    function ouvrepopup(){
    	if(!win || win.closed){
    		win=window.open("popup.html","page1","titlebar=no");
    	}
    	else {
    		win.focus();
    	}
    	return false;
    }
     </script>
     </head>
     <body>
    <a href="popup.html" onclick="return ouvrepopup();">texte du lien</a>
    </body>
    </html>

Discussions similaires

  1. [Réseau] Réseau : rafraîchir une page
    Par Walabar dans le forum Langage
    Réponses: 4
    Dernier message: 22/02/2007, 01h23
  2. Réponses: 1
    Dernier message: 02/07/2006, 13h34
  3. rafraîchir une page
    Par sansouna24 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 21/05/2006, 13h30
  4. Redirection, ca ne marche pas depuis une page 404 ?
    Par TicTacToe dans le forum Langage
    Réponses: 16
    Dernier message: 02/03/2006, 10h54
  5. Rafraîchir une page php
    Par WiLL_59 dans le forum Langage
    Réponses: 5
    Dernier message: 20/02/2006, 18h16

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