rss
Javascript enregistrer une frame
par ponpon
 Fil de Discussions
Statut : Non résolu
vendredi 17 mars 2006 à 08:35:23
Bonjour, tt le monde

Alors j'ai une question,

je n'arrive pas a faire une recherche dans une frame qui affiche un site (cf : http://www.commentcamarche.net/forum/affich-2128867-javascript-recuperation-valeur-dans-un­e-page)
au passage merci a kilian pour son aide.
Par contre est ce possible d'enregister cette frame en .htm ou .txt
ou encore soyons fou de créer un cookie pour enregister le contenu de la source ? lol

voila voila question pas trop compliqué mais qu'on arrive pas a réaliser avec killian.
Bonne journée et merci d'avance pour vos aides
Répondre à ponpon  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par kilian, le vendredi 17 mars 2006 à 08:40:22 Fil de Discussions
Si c'est possible.
Tu peux éventuellement la télécharger en utilisant AJAX.
http://www.commentcamarche.net/ajax/ajax-intro.php3

Mais il va falloir que tu utilises du javascript pas standard pour l'enregitrer dans un fichier....

Je pense qu'il faudrait réfléchir à pourquoi ton url ne passe pas dans la frame.
Répondre à kilian

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par ponpon, le vendredi 17 mars 2006 à 08:55:29 Fil de Discussions
j'envisage tte les options possible je ne laisse pas le pb de l'url de coté.
Répondre à ponpon

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par ponpon, le vendredi 17 mars 2006 à 13:25:59 Fil de Discussions
Personne n'a de soluce ou des liens a exploiter ?
Répondre à ponpon

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par hapyba, le mercredi 5 avril 2006 à 00:31:14 Fil de Discussions
Bonjour ponpon et kilian,

J'ai suivi avec grand intérêt vos différents post pour arriver à récupérer des infos d'une frame contant une page externe car j'ai le même problème et je galère depuis une semaine .

Avez vous trouvé une solution ou une piste ?

Merci de votre réponse

Patrick
Répondre à hapyba

5


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par hapyba, le jeudi 6 avril 2006 à 21:23:00 Fil de Discussions
Auriez vous une petite piste, tout'p'tite ???
Répondre à hapyba

6


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par kilian, le vendredi 7 avril 2006 à 07:37:26 Fil de Discussions
Salut,

Pourrait tu me préciser coment est rangée cette valeur?
Entre quelles balises? Et est ce que cette balise possède un id ou un nom (champs name).
Et ou veux tu récupérer cette valeur? Dans une autrre frame ou dans ta page principale?
Répondre à kilian

7


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par hapyba, le vendredi 7 avril 2006 à 14:23:30 Fil de Discussions
Kilian, je te remercie vivement pour avoir pris en compte ma question !!!

J'appelle depuis mon site la page d'un site extérieure afin d'en extraire les informations et les présenter sous forme de liste.

Dans la page extérieure il y un tableau par enregistrement de données.

Chaque tableau est ainsi conçu (simplifié) :
<table>
<tr id="xxxxx0"> (0 à n)
<td ...>
<table ...>
<tr>
<td ...>
<a id="yyyyy0"> donnee1</a> donnee2
</td>
<td ..>
</td>
</tr>
</table>
</TD>
</TR>
</TABLE>
<table>
<TR ID="zzzzz0">
<TD..>
donnee 3 <br> donnee4
<br>donnee5
</TD>
<TD ...>
donnee inutile
</TD>
<TD>
</tr>
<table>

idem pour enregistrment suivant (avec xxxxxx1)

J'ai suivi les échanges que tu as eu avec ponpon et j'en suis arrivé au même résultat . c'est à dire impossible d'accéder aux éléments de la page extérieure .

Patrick
Répondre à hapyba

8


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par hapyba, le samedi 8 avril 2006 à 10:38:56 Fil de Discussions
Bonjour Kilian,

Juste pour info j'avais aussi regardé les echanges que tu avais eu avec ponpon dans le message : http://www.commentcamarche.net/forum/affich-2128867-javascript-recuperation-valeu...

Et la dernière piste était la mise en place d'un controle activeX

...

Merci
Répondre à hapyba

9


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par kilian, le samedi 8 avril 2006 à 12:57:27 Fil de Discussions
Oui c'était hasardeux comme réponse, il voulait enregistrer sa page dans un fichier et c'est impossible en javascript standard, donc je lui avait suggéré de regarder du côté de script plus permissifs mais qui ne marchent qu'avec Internet Explorer.

Maintenant, si depuis une frame, tu veux récupérer des valeurs contenues dans des balise qui ont un id dans une autre frame, tu peux.

C'est bien depuis une autre frame que tu veux récupérer ces valeurs? Et non pas dans la page mère?
Répondre à kilian

10


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par hapyba, le samedi 8 avril 2006 à 17:25:38 Fil de Discussions
Je souhaite les récupérer quelque soit la méthode.

J'ai essayé ces configurations :

Scéneario 1
-------------
page1.html (frameset et frame)
->déclare 2 frames : frame0 et mainframe
->frame0 = http://www.siteext.com/pagequiminteresse.html
->mainframe=recuperateur.php
=> à l'appel de page1.html la frame 0 contient les données que je souhaite récupérer et recuperateur.php essaye de les récupérer


Scéneario 2
-------------
recuperateur.php
->déclare une iframe (iframe0) qui a comme source : http://www.siteext.com/pagequiminteresse.html
=> recuperateur.php essaye de recuperer les donnees de la page contenu dans son iframe0

Est-ce clair ?
Tout autre scénario est envisageable !!!

Merci

patrick
Répondre à hapyba

11


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par kilian, le lundi 10 avril 2006 à 00:42:20 Fil de Discussions
Tout ce dont tu as besoin, c'est récupérer des trucs dans la page qui t'interesse sur le site distant, puis traiter ta page principale en fonction, c'est bien ça?
Une fois chargée, ta page principale n'est plus censée bouger?

En ce cas, ça rend les choses encore plus facile.

Si tu me cites l'endroit qui t'interesse sur cette page distante, je peux éventuellement te donner le code pour extraire ce passage.
Répondre à kilian

12


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par hapyba, le lundi 10 avril 2006 à 02:41:01 Fil de Discussions
bonsoir kilian,

en effet :
- dans ma page principale (pageprincipale.html) il ya un textearea nommé f_text
- dans la page externe chargée dans une frame ou une iframe il y a plusieurs tableaux identiques repérables par la balise tr nommées tableau0, tableau1...

j'ai fait un exemple : http://www.phc2i.com/CCM/pageprincipale.html

qui affiche et doit récupérer les infos de :
http://www.strategeinformatique.com/CCM/tableau.html

Merci de ton aide

Patrick
Répondre à hapyba

13


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par kilian, le lundi 10 avril 2006 à 09:20:41 Fil de Discussions
Eh bien ça a déjà l'air de marcher dans la page que tu viens de mettre en lien.
Répondre à kilian

14


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par hapyba, le lundi 10 avril 2006 à 09:31:31 Fil de Discussions
non non...

Le cadre du bas (URL extérieure) sera caché

Le cadre du haut doit recevoir les données du cadre du bas (dans l'exemple, je les ai ajoutés en tant que value du textearea donc à la main), lors de l'appuis sur le bouton ( par exemple)
et selon une présentation différente

Dans mon exemple, lorsque tu appuies sur le bouton, rien ne se passe, en dehors de l'alerte qui est juste avant l'instruction de copie des données du cadre du bas vers celui du haut et qui ne marche pas,
et normalement le texte : "ici doit s'afficher : " doit disparaître

patrick
Répondre à hapyba

15


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par kilian, le lundi 10 avril 2006 à 10:32:55 Fil de Discussions
Ben tu peux arranger ça sans frame.
J'aime pas les frames mais ça n'a pas d'importance, tu pourras afficher tes résultats comme tu veux, dans une frame ou non.

Donc il te suffit de télécharger la page distante puis d'utiliser uen expression régulière pour en extraire les informations.

Globalement ça donne ça:
$content=file_get_contents('http://www.strategeinformatique.com/CCM/tableau.html');

$vide='[^<]*';
$masque = "/<tr id=\"tableau[0-9]{1}\">$vide<td>(.*?)<\/td>$vide<td>$vide&l­t;table>$vide<tr>$vide<td>$vide<\/td>$vide<td>(.*?)<\/td>­/";

preg_match_all($masque, $content, $out, PREG_SET_ORDER);

print_r ($out);

Je ne sais pas si tu sais utiliser les expressions régulières, il ya un cours dessus ici dans la section Php.

J'ai utiliser uen variable nommée $vide pour représenter les tabulations, saut de lignes etc... lorsque le contenu entre deux balises ne nous interesse pas.

J'utilise print_r pour représenter le résultat. Tu verras qu'à $out[0][0] tu as le premier résultat qui correspond à l'expression régulière entière.
A $out[0](1] tu as le premier résultat qui t'interesse (champ1_tab0)
A $out[0][2] tu as champ2_tab0

Dans $out[1][0] tu as le deuxième résultat qui correspond à l'expression régulière entière etc...
Répondre à kilian

16


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par hapyba, le lundi 10 avril 2006 à 10:52:52 Fil de Discussions
Kilian,

J'ai malheureusement déjà essayé la piste du php avec fopen url et fread ou file_get_contents, mais l'url extérieure en question teste si mon poste accepte les cookies et si mon navigateur accepte les scripts et comme php s'exécute du coté serveur la page que je reçois est une page d'erreur.

En tout cas merci pour l'info coté php , elle m'a appris quelques ruses que je ne connaissais pas.

j'ai aussi essayé un require et un include de la page en question sans résultat

dur dur, autres pistes ?

Patrick
Répondre à hapyba

17


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par kilian, le lundi 10 avril 2006 à 11:06:36 Fil de Discussions
Là ou je suis, file_get_contents fonctionne bien.
Dans le pire des cas, tu peux y aller avec fsockopen() et modifier tes en-têtes.
Répondre à kilian

18


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par hapyba, le lundi 10 avril 2006 à 11:17:43 Fil de Discussions
file_get_contents le fait car mon exemple est un jeu d'essai que j'avais orienté poste client et donc j'avais isolé le problème dans ce sens.

Dans la situation réelle il y a bien ses 2 erreurs détectées (cookies, script)

Afin d'avancer de mon côté sur la piste que tu m'as donné, je vais me lancer dans le fsockopen() que je n'ai jamais utilisé, c'est l'occasion...

Si tu as d'autres pistes je suis preneur.

Dans tous les cas je te tiens au courant.

Merci encore

Patrick
Répondre à hapyba

19


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par kilian, le lundi 10 avril 2006 à 11:23:00 Fil de Discussions
Je viens d'essayer plusieurs truc en Javascript avec une frame et:
Error: uncaught exception: Permission denied to get property HTMLDocument.getElementById

Ni plus, ni moins....et sans autre éclaircissement sur l'affaire.

Au fait j'y pense, si le serveur distant se met des protections comme ça peut être que c'est justement car il ne veulent pas de scripts robot sur leur serveur....
Répondre à kilian

20


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par hapyba, le lundi 10 avril 2006 à 11:47:18 Fil de Discussions
'permission denied' , et script robot

Pour le premier, j'ai lu, selon les forums que js, ie ou ff mettaient des protections dans ce sens, je n'ai pas approfondi cette piste.

Pour le second, nous avons contacté les responsables du site pour savoir si les données ne pouvaient pas nous être mises à disposition (rss), et ils nous ont répondu que d'autres sites utilisaient les résultats directement dans leurs pages sans problème et ils n'y voient pas d'inconvénients.

Mais où est la ruse ?

Patrick
Répondre à hapyba

21


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par kilian, le lundi 10 avril 2006 à 11:50:56 Fil de Discussions
Tu pourrais me donner l'adresse de la page en question.
Puis si j'ai le temps je regarderai ça ce soir.
Répondre à kilian

22


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par hapyba, le lundi 10 avril 2006 à 12:27:12 Fil de Discussions
Pas de problème, mais je préfère te l'envoyer en privé
voici mon adresse mail afin que tu m'envoies la tienne
patrick.hagege@phc2i.com

Pourrais tu me dire dans quel domaine tu travailles

Encore merci

bonne journée

patrick
Répondre à hapyba

23


  • 1
    Ce message vous semble utile, votez !
  • Ce message ne vous semble pas utile, votez !
  • Signaler ce message aux modérateurs
Par kilian, le lundi 10 avril 2006 à 14:17:40 Fil de Discussions
Je ne te conseille pas de mettre ton adresse mail dans la discussion si tu ne veux pas recevoir de spam (à cause des robots qui trainent).

Par contre mon email est dans mon profil (suffit de cliquer sur mon nom).

Pourrais tu me dire dans quel domaine tu travailles

En fait je ne travaille pas encore. Je suis en BTS informatique administration réseau.