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

 Delphi Discussion :

TWebbrowser, aperçu de la source différente du fichier html !


Sujet :

Delphi

  1. #1
    Membre émérite
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 549
    Détails du profil
    Informations personnelles :
    Âge : 72
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 549
    Par défaut TWebbrowser, aperçu de la source différente du fichier html !
    Bonjour à toutes et à tous,

    Y a t'il un utilisateur qui a constaté qu'avec l'utilisation du composant TWebBrowser, l'aperçut de la source est différent du contenu du fichier html.

    Que se soit avec le Tmemo ou le TRichedit.

    Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    FSource.show;
      try
        FSource.memo1.Text := WebBrowser1.OleObject.Document.body.innerHTML;
      except end;
    end;
    Aperçu obtenu :

    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
     
    <FORM name="Caméra arrière">
     
    <SCRIPT language=JavaScript> 
     
    //1920 x 1080 ou 1535 x 740
     
      document.writeln('<OBJECT CLASSID="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B" width=' + 1535 + 
     
          ' height=' + 740 + ' CODEBASE="http://www.apple.com/qtactivex/qtplugin.cab">'); 
     
      document.writeln('<param name="autoplay" value="true">'); 
     
     
      document.writeln('<param name="controller" value="true">'); 
     
     //H.264 over RTSP over 554 port  
     
         document.writeln('<param name="qtsrc" value="' + 'rtsp://192.168.1.12:554/user=admin&password=&channel=1&stream=0.sdp?real_stream' + '">'); 
     
      </SCRIPT>
     
    <OBJECT codeBase="http://www.apple.com/qtactivex/qtplugin.cab" classid=clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B width=1535 height=740>
      </body></html></OBJECT></FORM>
    Contenu du fichier html :

    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
     
    <html>
    <head> 
    <title>Viewer H264</title> 
    </head>
    <body> 
     <form name = "Caméra arrière">
     <script language="JavaScript"> 
     
    //1920 x 1080 ou 1535 x 740
     
      document.writeln('<OBJECT CLASSID="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B" width=' + 1535 + 
     
          ' height=' + 740 + ' CODEBASE="http://www.apple.com/qtactivex/qtplugin.cab">'); 
     
      document.writeln('<param name="autoplay" value="true">'); 
     
     
      document.writeln('<param name="controller" value="true">'); 
     
     //H.264 over RTSP over 554 port  
     
         document.writeln('<param name="qtsrc" value="' + 'rtsp://192.168.1.12:554/user=admin&password=&channel=1&stream=0.sdp?real_stream' + '">'); 
     
      </script>  
     
    </body>
    </html>
    Merci d'avance.

    @+,

    cincap

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 549
    Détails du profil
    Informations personnelles :
    Âge : 72
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 549
    Par défaut
    Dans mes tests, j'ai changé la méthode, comme je charge le fichier dans un TComboBox pour le visualiser, je l'utilise pour le charger dans un Tmemo ou TRichEdit.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
    procedure TFViewerH264.BsourceClick(Sender: TObject);
    begin
     
     FSource.show;
      try
            FSource.Redit.Lines.LoadFromFile(ComboBoxURL.text);
      except end;
    end;
    @+,

    cincap

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    322
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2009
    Messages : 322
    Par défaut
    La source HTML change selon Firefox ou IE.

    La source obtenu avec WebBrowser1.OleObject.Document.body.innerHTML est aussi différentes de ce que donne IE. Des Majuscules, des guillemets, etc.

    De mémoire le code renvoyé par innerhtml (avant l'exécution de script dans le html) est différent de outerhtml (après l'exécution de script)...

    ...

    Il faut donc toujours considérer la source donnée par le programme Delphi plutôt que par IE.

    On peux quand même extraire les données pertinentes quelques soit la source, mais les routines d'extractions sont plus délicates à mettre en œuvre. Et bien sût plus difficile à maintenir lorsqu'il y a des modifications du côté du fournisseur de données.

    Je me contente donc d'afficher uniquement le code HTML envoyer par Delphi et je le travaille jusqu'à l'extraction des données pertinentes. Les autres sources (IE et Firefox sont sommes tout inutiles et complique le programme inutilement)

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 549
    Détails du profil
    Informations personnelles :
    Âge : 72
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 549
    Par défaut
    Bonjour à toutes et à tous,

    @ sgmsg, merci pour ton info.

    Le fait de charger le fichier html directement dans IE 10, le visu de la source est complète.

    Le fait de charger le fichier html qui se trouve dans le même dossier que l'application directement par un TOpenDialog et afficher son Filename dans un TcomboBox, le visu de la source est complète.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    FSource.Redit.Lines.LoadFromFile(ComboBoxURL.text);
    A la place de ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    FSource.memo1.Text := WebBrowser1.OleObject.Document.body.innerHTML;
    Donc pas de code inutile et simplification de l'affichage.

    @+,

    cincap

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

Discussions similaires

  1. Fichier copié différent du fichier source
    Par jobar38 dans le forum Windows
    Réponses: 2
    Dernier message: 21/03/2014, 11h15
  2. Réponses: 6
    Dernier message: 09/04/2009, 11h55
  3. Lire la source d'un fichier html
    Par Sekigawa dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 12/03/2009, 10h40
  4. Réponses: 3
    Dernier message: 23/05/2007, 16h15

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