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 :

Récupérer code HTML en JS.


Sujet :

JavaScript

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 4
    Points : 4
    Points
    4
    Par défaut Récupérer code HTML en JS.
    Bonjour.
    Je désirerai récupérer tout le code HTML d"une page en cours et le mettre dans une variable de type texte afin plus tard d'en extraire des parties, le tout en Javascript.
    J'ai bien essayé avec innerHTML mais je n'arrive à rien.
    Des idées?
    Merci.

  2. #2
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 650
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 650
    Points : 11 142
    Points
    11 142
    Par défaut
    bonjour,

    ce bout de code récupere tout ce qui entre les balises body (balises et texte) :

    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
    23
    24
    25
    26
     
    <html>
    <head>
    <title></title>
     
    <script type="text/javascript">
    <!--
    function RecupereContenu()
    {
     alert(document.body.innerHTML);
    }
     
    //-->
    </script>
     
    </head>
     
    <body onload="RecupereContenu()">
    <p> Paragraphe 1</p>
    <p> Paragraphe 2</p>
    <p> Paragraphe 3</p>
    <p> Paragraphe 4</p>
     
    </body>
     
    </html>

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 4
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par Auteur
    bonjour,

    ce bout de code récupere tout ce qui entre les balises body (balises et texte) :

    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
    23
    24
    25
    26
     
    <html>
    <head>
    <title></title>
     
    <script type="text/javascript">
    <!--
    function RecupereContenu()
    {
     alert(document.body.innerHTML);
    }
     
    //-->
    </script>
     
    </head>
     
    <body onload="RecupereContenu()">
    <p> Paragraphe 1</p>
    <p> Paragraphe 2</p>
    <p> Paragraphe 3</p>
    <p> Paragraphe 4</p>
     
    </body>
     
    </html>
    Merci, mais est il possible de récupérer le texte dans une variable?
    Et je voudrai en plus ne pas avoir à toucher à la balise body.
    Ce code peut il s'exécuter tout seul aprés ou avant les balises Body?

  4. #4
    Expert éminent

    Avatar de denisC
    Profil pro
    Développeur Java
    Inscrit en
    Février 2005
    Messages
    4 050
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 4 050
    Points : 7 641
    Points
    7 641
    Par défaut
    Citation Envoyé par Kernel_Panic
    Merci, mais est il possible de récupérer le texte dans une variable?
    variable=.....

    Citation Envoyé par Kernel_Panic
    Et je voudrai en plus ne pas avoir à toucher à la balise body.
    Ce code peut il s'exécuter tout seul aprés ou avant les balises Body?
    Avant, ça me parait dur... Après pas de problèmes.

    Sinon, addEventListener/attachEvent.

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 4
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par denisC
    Citation Envoyé par Kernel_Panic
    Merci, mais est il possible de récupérer le texte dans une variable?
    variable=.....

    Citation Envoyé par Kernel_Panic
    Et je voudrai en plus ne pas avoir à toucher à la balise body.
    Ce code peut il s'exécuter tout seul aprés ou avant les balises Body?
    Avant, ça me parait dur... Après pas de problèmes.

    Sinon, addEventListener/attachEvent.
    Impec
    Ca marche nickel.
    Merci beaucoup pour vos conseils aussi avisés que rapides.

  6. #6
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Ce code m'intéresse grandement également, mais j'ai bien peur de ne pas avoir tout compris.

    Le script qui ouvre le code source dans un alert marche.

    Mais comment faire pour afficher le code html de la page dans la page, pour ensuite le récupérer en copier/coller?

    Merci d'avance

    ++

  7. #7
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 650
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 650
    Points : 11 142
    Points
    11 142
    Par défaut
    bonjour,

    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
     
    <html>
    <head>
    <title></title>
     
    <script type="text/javascript">
    <!--
    function GetTexte()
    {
     var texte = document.body.innerHTML;
     var i, txt="";
     
     alert(texte);
     
     for (i=0; i<texte.length;i++)
     {
      if (texte.charAt(i)=="<" || texte.charAt(i)==">")
      {
       if (texte.charAt(i)=="<")
         txt = txt + "&lt;";
       if (texte.charAt(i)==">")
         txt = txt + "&gt;";
      }
      else
       txt = txt + texte.charAt(i).toLowerCase();
     }
     document.getElementById("idDiv").innerHTML = "Code HTML&nbsp;:<br>"+txt;
    }
     
    function PressePapiers()
    {
     var envoi, data, txt;
     txt = document.getElementById("idDiv").innerHTML;
     
     envoi = window.clipboardData.setData("Text",txt);
     if (envoi)
        alert("Données envoyées dans le presse-papiers");
     else
         alert("Erreur");
     
     data = window.clipboardData.getData("Text");
     alert("Contenu du Presse-Papiers :\n\n"+data);
    }
     
    //-->
    </script>
     
    </head>
     
    <body onload="GetTexte()">
    <p>paragraphe 1 <span style="background-color: #A1B2C3">suite du paragraphe</span></p>
    <p>paragraphe 2</p>
    <p>paragraphe 3</p>
    <input type="button" value="Presse Papiers" id="BNom" onclick="PressePapiers();">
     
    <div id="idDiv">&nbsp;</div>
     
    </body>
     
    </html>
    la fonction getText permet de récupérer le code HTMl de la page : il est ensuite afficher dans la boite de dialogue alert(texte).
    Le problème est d'afficher le texte dans la page : si je fais directement innerHTML = texte, les balises HTML contenues dans la variables seront interprétées par le navigateur. Pour éviter cela, je lis chaque caractère (charAt) contenu dans texte grâce à la boucle for(). Et losrque je détecte un "<" (début de la balise) ou un ">" (fin de balise), je le remplace par son code (cf. condition if). J'affiche ensuite le résulat du "scan" dans la balise div dédiée à ça.

    La fonction PressePapier() permet de récupérer tout ce qui est entre les balises div et de le copier dans le presse-papiers (setData). Je récupère ensuite le contenu du Presse-Papiers (getData) que j'affiche grâce à la fonction alert().
    Les fonctions du presse-papiers ne fonctionnent que sous IE. Je n'ai encore rien trouvé de similaire pour FireFox par exemple.

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

Discussions similaires

  1. récupérer code html
    Par boboss123 dans le forum jQuery
    Réponses: 28
    Dernier message: 02/02/2011, 17h06
  2. Récupérer code html page web
    Par saturn1 dans le forum Général Java
    Réponses: 12
    Dernier message: 13/07/2009, 19h26
  3. récupérer code html avec API mozilla (ou gecko)
    Par samitriani dans le forum Général Conception Web
    Réponses: 0
    Dernier message: 12/12/2008, 15h45
  4. Récupérer code html généré par une jsp
    Par axel119 dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 11/09/2007, 16h17
  5. [MySQL] Récupérer Code HTML généré par PHP
    Par @ngelofdeath dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 26/04/2006, 21h51

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