Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1118 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  javascript : lire le contenu d'une page

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

javascript : lire le contenu d'une page

n°1283672
Celiphane
Posté le 14-01-2006 à 18:28:49  profilanswer
 

Bonjour,
 
je vous soumets mon problème : via javascript, je sais lire la valeur d'un élément comme par exemple une zone de texte, mais comment lire le contenu de la page tout simplement ? Hors formulaire donc ? C'est possible ?
 
 
Merci par avance
 
@+
Celiphane

mood
Publicité
Posté le 14-01-2006 à 18:28:49  profilanswer
 

n°1283706
masklinn
í dag viðrar vel til loftárása
Posté le 14-01-2006 à 19:20:17  profilanswer
 

mégné [:petrus dei]


---------------
I've never understood the compulsion to use Web technologies minus the Web's security and deployment models. It seems a bit like throwing the orange away and eating the peel. — @ justinschuh‬
n°1283726
gatsu35
Blablaté par Harko
Posté le 14-01-2006 à 20:09:05  profilanswer
 

Code :
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2. <html>
  3. <head>
  4. <title></title>
  5. <script type="text/javascript">
  6. function jeuboiboite(){
  7.  var maboite = document.getElementById("boiboite" );
  8.  var boiboitetowrite = document.getElementById("boiboitetowrite" );
  9.  boiboitetowrite.innerHTML = maboite.innerHTML;
  10. }
  11. window.onload = jeuboiboite;
  12. </script>
  13. </head>
  14. <body>
  15. <p id="boiboite">
  16. texte <b>qui</b> va aller d'un bout à l'autre
  17. </p>
  18. <p id="boiboitetowrite">
  19. </p>
  20. </body>
  21. </html>


 

n°1284403
omega2
Posté le 16-01-2006 à 12:39:40  profilanswer
 

Gatsu35 >

Code :
  1. function total(){ return document.InnerHTML}

, ca ferait pas tout aussi bien ce qu'il cherche sans modification de la page html?

n°1284412
masklinn
í dag viðrar vel til loftárása
Posté le 16-01-2006 à 12:46:40  profilanswer
 

omega2 a écrit :

Gatsu35 >

Code :
  1. function total(){ return document.InnerHTML}

, ca ferait pas tout aussi bien ce qu'il cherche sans modification de la page html?


Ca retourne pas le texte de la page, ça retourne tout le code de la page :o


---------------
I've never understood the compulsion to use Web technologies minus the Web's security and deployment models. It seems a bit like throwing the orange away and eating the peel. — @ justinschuh‬
n°1284419
omega2
Posté le 16-01-2006 à 12:53:31  profilanswer
 

InnerText alors si elle veut vraiment que le texte, mais me semble pas que ca soit compatible firefox 1.0 et alors il faut s'amuser à parcourir toute l'arborescence de la page pour chercher le texte de chacun.
Et si elle veut que le contenu du body, suffit de chercher l'élément dont le type est <body>.
 
Mais bon, pour moi, c'était le code html de la page qu'était demandé et pas juste le texte affiché sans tenir compte de la mise en page.

n°1284462
gatsu35
Blablaté par Harko
Posté le 16-01-2006 à 13:47:39  profilanswer
 

ben oui il suffit aussi de recuperer le ou les childnodes qui compose le texte sous FF mais ca devient reloud :/
 
ou alors recuperer avec innerHTML et utiliser des regexp pour virer les balises.
 
innerText ça n'existe que dans l'esprit de microsoft

n°1284711
Celiphane
Posté le 16-01-2006 à 16:19:36  profilanswer
 

Bonjour,
 
merci de votre aide.
Pour préciser, je recherche en effet à lire tout le code complet ! Pas juste un paragraphe ou un bout de texte quelque part.
 
J'ai donc essayé avec innertext comme conseillé plus haut mais ça ne semble pas fonctionner !
 
Voici ce que j'ai écrit dans mon fichier html :
 
<html>
  <head>
    <script language="javascript">
      function total() {return document.InnerHTML}  
    </script>
  </head>
  <body onload="alert(total())">
  </body>
</html>
 
 
Le message indique juste comme contenu << undefined >> .
Ai-je mal utiliser le code ? Ou bien ne fonctionne-t-il simplement pas ? (ps: testé sous IE et FF)
 
Merci par avance.
 
@+
Celiphane

n°1284722
anapajari
s/travail/glanding on hfr/gs;
Posté le 16-01-2006 à 16:29:41  profilanswer
 

il me semble que document n'a pas de propriété innerHTML et puis de toute façon c'est pas tout le document que tu veux mais juste le body non ( le head tu t'en moques non?) ?
Donc perso je ferais un truc dans le genre:

Code :
  1. function total() {
  2.   for(i=0; i<document.documentElement.childNodes.length; i++){
  3.     if ( document.documentElement.childNodes.item(i).tagName == 'BODY'){
  4.       return document.documentElement.childNodes.item(i).innerHTML;
  5.     }
  6.   }
  7. }


ça doit marcher sur IE & FF...

n°1284734
Celiphane
Posté le 16-01-2006 à 16:48:14  profilanswer
 

Re !
 
Merci pour cette correction. Ca fonctionne en effet niquel pour lire par exemple le BODY.
 
C'est très correct, cela répond donc à ma question.
 
 
Maintenant, si possible, j'aimerai aller plus loin : en supposant que la page que je souhaite lire est mal formatée, par exemple, qu'elle soit exempte de balise BODY (supposons). Mon code devient donc inopérant.
Pour palier à ça, comment faire ? En gros 3 solutions me semblent envisageables :
 
1°) savoir lire hors balise, donc avec une autre technique.
2°) soit user d'un subterfuge consistant à utiliser la méthode write de javascript pour lui faire écrire les balises manquantes. Possible ça ?
3°) en se basant un tantinet sur la 2°, faire écrire à javascript une nouvelle page (je sais qu'on peut par exemple ouvrir un popup entièrement créé par la page appelante) en inscrivant la balise, puis en insérant la page à lire en l'appelant (iframe ou autre je ne sais pas je ne suis pas assez pointue) et enfin en inscrivant la balise de fin.
 
Qu'en pensez-vous ? En effet, souvent, mes scripts seraient amené à lire des pages pas nécessairement html, mais par exemple simplement des TXTs... et là, pas de balise BODY vous me comprenez ?
 
Merci pour votre aide !
 
@+
Celiphane


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  javascript : lire le contenu d'une page

 

Sujets relatifs
Page générée videProblème de mise en page d'un site
lire un texte et en repertorier chaque mot?Lire et Ecrire dans un fichier
excel : fonction pour effacer le contenu d'une celluleouverture page
ouverture page webBalise title d'une page web
[JAVASCRIPT] - Afficher une image aléatoirement sur une page WEB 
Plus de sujets relatifs à : javascript : lire le contenu d'une page


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR