TWebbrowser - détection de modification de page [Résolu]

Signaler
Messages postés
4716
Date d'inscription
dimanche 26 février 2006
Statut
Modérateur
Dernière intervention
27 mars 2018
-
cs_cantador
Messages postés
4716
Date d'inscription
dimanche 26 février 2006
Statut
Modérateur
Dernière intervention
27 mars 2018
-
Bonjour à tous et bonne année,

Après le foie gras et le champagne une question pour bien chauffer
les neurones en ce début d'année :
J'utilise un TWebbrower que je connecte à un site web.
Jusqu'ici tout va bien...

Je souhaiterai détecter le moindre changement dans la page internet affichée, lors d'un clic sur telle ou telle action.
Précision, l'URL ne change pas et le code source de la page non
plus (pas d'un iota..)

J'ai pas mal cherché et fouillé, mais pour le moment rien de concret...
Vu aussi avec le TEmbeddedWeb..

L'idéal serait de pouvoir se servir d'un événement du composant.
Quelqu'un aurait-il été confronté à cette difficulté ?


cantador

15 réponses

Messages postés
302
Date d'inscription
jeudi 29 septembre 2005
Statut
Membre
Dernière intervention
17 septembre 2013
1
je ne peux pas t'aider pour le moment car j'ai des interférences du style TDivorce, TFinances, etc etc, et en plus un clqcier azerty...
Messages postés
2527
Date d'inscription
jeudi 15 janvier 2004
Statut
Membre
Dernière intervention
16 octobre 2019
13
Salut,

Bonne année à tous deux (et surtout bon courage à Luc).

« Je souhaiterai détecter le moindre changement dans la page internet affichée, lors d'un clic sur telle ou telle action. »

A tout hasard, je suppose que tu as étudié OnCommandStateChange ?


_______________________________________
Soutenez Wikimédia France aujourd'hui : http://dons.wikimedia.fr

Hop hop hop j'ai la solution


Regarde au niveau des champs d'en-tête et plus particulièrement If-Modified-Since et Last-Modified

Mince j'ai oublié un truc : Le mieux est que tu te penches sur le protocole HTTP ainsi que les deux champs que je t'ai indiqué.

Pour le principe du champ If_Modified_Since regarde ici
Messages postés
302
Date d'inscription
jeudi 29 septembre 2005
Statut
Membre
Dernière intervention
17 septembre 2013
1
Bonjour,

peut-être touveras-tu ton bonheur ici :

events

Luc.
Messages postés
4716
Date d'inscription
dimanche 26 février 2006
Statut
Modérateur
Dernière intervention
27 mars 2018
11
Merci beckerich pour le coup de main

j'ai trouvé aussi cette page mais ça ne marche pas car je ne peux rien détecter (ni image, ni frame, ni id, ni objet..)
je teste celle-là en ce moment :

LIEN

cantador
Messages postés
4716
Date d'inscription
dimanche 26 février 2006
Statut
Modérateur
Dernière intervention
27 mars 2018
11
Bonjour Caribensila et bonne année,
et à cashmire aussi...

Pour mon souci, l'évènement OnCommandStateChange
suppose une modification de l'URL ( NAVIGATEFORWARD et NAVIGATEBACK)

mais dans mon cas, il n'y a que du
javascript derrière..

je me demande si je ne vais pas tenter de faire une petite capture d'écran, la scanner dans un thread et tester dès que ça bouge..
c'est lourd mais..

Qu'en penses-tu ?

cantador

Salut,

Question con : A qui appartient ce site et le serveur ? (J'ai une ptite idée )
Messages postés
4716
Date d'inscription
dimanche 26 février 2006
Statut
Modérateur
Dernière intervention
27 mars 2018
11
Salut Francky23012301,

je dirai rien même sous la torture...
la méthode doit pouvoir s'appliquer partout.

cantador
Messages postés
4716
Date d'inscription
dimanche 26 février 2006
Statut
Modérateur
Dernière intervention
27 mars 2018
11
merci Francky23012301 pour l'info
mais cela suppose que l'on puisse atteindre ces fameux champs.
or dans mon cas, ces infos sont inaccessibles..

cantador
Messages postés
4716
Date d'inscription
dimanche 26 février 2006
Statut
Modérateur
Dernière intervention
27 mars 2018
11
que du javascript..


cantador

"Ces infos sont inaccessibles " A cause du TWebBrowser ? du serveur ?
Messages postés
4716
Date d'inscription
dimanche 26 février 2006
Statut
Modérateur
Dernière intervention
27 mars 2018
11
du TWebbrowser, non puisqu'il est maîtrisable.
du serveur, je suppose..
mais peut-être sont elles simplement cachées dans le source
à moins qu'avec Indy (qur tu connais bien) on puisse faire autrement.

cantador

Je te conseille de regarder plus en détail le protocole HTTP.

En fait il faut que :

*Ton serveur gère ce champ (Tous ne le font pas, même s'ils devraient).
*L'en-tête lors de l'envoie contienne ce champ (A voir si Indy et le WebBrowser permettent de le faire, sinon tu vas devoir utiliser winsock ).
*Il faut récupérer l'en-tête relative à la réponse reçue par le serveur et extraire la réponse correspondante à ce champ (et là aussi voir avec Indy et WebBrowser sinon winsock ).

Après dès qu'on touche au web, vu la jungle et le non respect des standards et normes, tu risques d'en baver.

Sinon ta méthode est aussi une alternative même si moins belle conceptuellement (Apres niveau perf ca sera aussi moins bon)
Messages postés
4716
Date d'inscription
dimanche 26 février 2006
Statut
Modérateur
Dernière intervention
27 mars 2018
11
merci Francky23012301,

j'ai maintenant tout ce qu'il faut pour travailler..

cantador