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 :

Ouvrir une nouvelle page HTML


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    bricoleur
    Inscrit en
    Octobre 2014
    Messages
    406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : bricoleur
    Secteur : Alimentation

    Informations forums :
    Inscription : Octobre 2014
    Messages : 406
    Par défaut Ouvrir une nouvelle page HTML
    Bonjour à tous
    Voilà des semaines que j'essaie en vain de faire quelque chose qui me paraît d'une simplicité élémentaire: Ouvrir une fenêtre ou une page après avoir déjà reçu une page d'accueil.

    je m'explique:
    • dans un dialogue Client/Serveur, après avoir établit la liaison, le serveur envoie sa page HTML normale de présentation.
    • Le Client ayant besoin de modifier quelques paramètres fait une demande en se sens au Serveur.
    • Ce dernier renvoie une nouvelle page ou une fenêtre afin que le Client y saisisse ses modifications.
    • L'envoi de cette page ou fenêtre est un flux de String formant une page HTML normale.

    Voici le dernier essai que j'ai fait mais qui ne mène à rien:
    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
    <script>
    <!--********lance la demande de page de configuration***************-->
       function configuration(){
    		var xhr = new XMLHttpRequest();
    		xhr.open("GET","/?config");	
    		xhr.responseType ='text';
    		xhr.onloadend = function(){
    			if(xhr.readyState == 4 && xhr.status == 200){
    				window.open();
    				<!--chargement de (xhr.responseText)
    			}
    		};
    		xhr.send();
        }
    </script>
    J'ai aussi essayé de mettre un <div> invisible au départ, que je charge avec mon flux: en le rendant visible, le contenu HTML apparaît correctement mais les éléments ne sont pas actifs ?

    Merci de me dire si ce que je veux faire est possible et si quelqu'un pouvait me donner une idée.
    Michel

  2. #2
    Membre éclairé
    Homme Profil pro
    bricoleur
    Inscrit en
    Octobre 2014
    Messages
    406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : bricoleur
    Secteur : Alimentation

    Informations forums :
    Inscription : Octobre 2014
    Messages : 406
    Par défaut Solution trouvée
    Après des heures de recherche, j'ai enfin trouvé une solution à mon problème.
    Pour ceux qui sont intéressés, je donne ci-après ma trouvaille.
    Bien-sûr, comme d'habitude, certains me diront qu'il ne faut pas faire comme ça et qu'il y a une bien meilleure solution! J'attends leurs critiques.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
        <!--********lance la demande de page de configuration***************-->
        function configuration(){
    		var xhr = new XMLHttpRequest();
    		xhr.open("GET","/?config");	
    		xhr.responseType ='text';
    		xhr.onreadystatechange = function(){			
    			if(xhr.readyState == 4 && xhr.status == 200){
    				var w = window.open();				
    				w.document.write(xhr.responseText);
    				w.document.close();
    			}	
    		};
    		xhr.send();
        }

  3. #3
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 207
    Par défaut
    Bonjour,
    je n'ai toujours pas compris ce que tu essaies de faire avec ta requête Ajax qui visiblement te renvoie le contenu d'une page ... donc ... pourquoi ne pas charger directement cette page !?!

    Ajax sert à modifier une partie du contenu d'une page sans recharger celle-ci.

  4. #4
    Membre éclairé
    Homme Profil pro
    bricoleur
    Inscrit en
    Octobre 2014
    Messages
    406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : bricoleur
    Secteur : Alimentation

    Informations forums :
    Inscription : Octobre 2014
    Messages : 406
    Par défaut
    Merci de t'intéresser à mon problème.

    En fait, mes pages HTML sont embarquées dans un composant électronique ESP8266.
    Je ne peux en extraire que le flux de texte et non pas un fichier en tant que tel.

    Ce que je veux faire:
    1 afficher une page qui indique le résultat de mesures effectuées par le serveur.
    2 éventuellement si le client en a besoin, modifier des paramètres sur le serveur pour, par exemple, définir des seuils de déclenchement pour des processus hardware.

    Mon problème est uniquement comment faire pour afficher une fenêtre ou une page de configuration après la page principale, sans URL de cette page.

    Cordialement
    Michel

  5. #5
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 207
    Par défaut
    Mon problème est uniquement comment faire pour afficher une fenêtre ou une page de configuration après la page principale, sans URL de cette page.
    Pourquoi, si j'ai bien compris, ne pas afficher le retour dans une partie de ta page de départ. Visiblement tu as essayé mais comment ?

    Si dans ta page tu as un élément
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <div id="retour"></div>
    alors il te suffit de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    function configuration() {
      const oXhr = new XMLHttpRequest();
      oXhr.onload = function () {
        document.getElementById("retour").innerHTML = oXhr.responseText;
      }
      oXhr.open("GET", "/?config");
      oXhr.send();
    }
    Le résultat apparaitra dans la <div>.


    J'ai aussi essayé de mettre un <div> invisible au départ, que je charge avec mon flux: en le rendant visible, le contenu HTML apparaît correctement mais les éléments ne sont pas actifs ?
    Il serait intéressant que tu précises ce que tu entends par « ne sont pas actifs ».

  6. #6
    Membre éclairé
    Homme Profil pro
    bricoleur
    Inscrit en
    Octobre 2014
    Messages
    406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : bricoleur
    Secteur : Alimentation

    Informations forums :
    Inscription : Octobre 2014
    Messages : 406
    Par défaut
    Lorsque je dis que les éléments ne sont pas actifs, cela veut dire que lorsque cette <div> apparaît les boutons qu'elle contient ne réagissent pas.
    Maintenant, j'avais peut-être fait une erreur mais je n'ai pas gardé cette solution alors je ne peux plus vérifier.
    En revenant sur ce que je fais maintenant: ouvrir un nouvel onglet pour y charger mon flux HTML, modifier mes paramètres puis fermer par un window.close(). Qu'est-ce qui n'est pas bien ? Car cela marche parfaitement: mon onglet s'ouvre, les paramètres sont entrés, je fais un POST pour envoyer le résultat, je referme l'onglet et la vie reprend son cours.

    Je viens juste d'apprendre C/C++, HTML, CSS, JavaScript, HTTP, j'en oublie peut-être et certainement que j'ai encore beaucoup à apprendre; aussi je vous remercie énormément pour l'aide que vous m'apportez.
    Cordialement

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 04/06/2007, 09h33
  2. Comment forcer firefox à ouvrir une nouvelle page et pas un onglet ?
    Par roxxxy dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 08/03/2007, 10h43
  3. Ouvrir une nouvelle page + aller a un signet ?
    Par NissqR dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 30/01/2007, 09h12
  4. window.confirm pour ouvrir une nouvelle page
    Par Are-no dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 15/08/2006, 17h50
  5. Comment ouvrir une nouvelle page dans la fenetre courante ?
    Par Stbaurl dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 15/12/2005, 11h46

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