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

VBScript Discussion :

Afficher code source page HTML


Sujet :

VBScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    926
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 926
    Par défaut Afficher code source page HTML
    Bonjour,
    j'ai une page:
    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <!DOCTYPE html>
    <html>
    <head>
    <title> partage avec hiérarchie imbriquée</title>
    </head>
    <frameset cols="20%,80%">
    <frame id="zone2" src="page1.html" name="zone2">
    <frameset rows="20%,80%">
    <frame name="zone1">
    </frameset>
    </frameset>
    </html>

    Lorsque j'ouvre cette page avec Internet explorer et que j'exécute le code ci-dessous :

    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
    Option Explicit
    Dim objApp, Window, monURL, count
     
    Set objApp = CreateObject("Shell.Application")
     
    count = -1
    For Each Window In objApp.Windows
      If Window = "Internet Explorer" Then
        count = count+1
        monURL = objApp.Windows(count).locationUrl  
     
        If monURL = "file:///C:/Users/username/Desktop/maPage.html" then	
     
    	   msgbox Window.Document.body.innerHTML
        End if
     
      End if   
     
    Next
    j'obtiens ceci :

    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <frame name="zone2" id="zone2" src="page1.html">
    <frameset rows="20%,80%">
    <frame name="zone1">
    </frameset>

    Je remarque au passage que le code source n'est pas entier. J'aimerais afficher le code source de la page page1.html qui se trouve dans la frame. Sauriez-vous ce que je dois mettre à la place de :

    Code VBA : Sélectionner tout - Visualiser dans une fenêtre à part
    msgbox Window.Document.body.innerHTML

    J'ai essayé :

    Code VBA : Sélectionner tout - Visualiser dans une fenêtre à part
    msgbox Window.Document.Frames(0).innerHTML

    ça marche pas.

  2. #2
    Membre Expert Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Par défaut
    Mettez comme ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        'msgbox Window.Document.body.innerHTML
        msgbox window.document.getElementById("zone2").contentWindow.document.body.innerHTML

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    926
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 926
    Par défaut
    Citation Envoyé par tsuji Voir le message
    Mettez comme ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        'msgbox Window.Document.body.innerHTML
        msgbox window.document.getElementById("zone2").contentWindow.document.body.innerHTML
    Merci beaucoup. Je viens de me rendre compte que VBS est extrêmement sensible à la casse. Si l'on met un D majuscule à .document, ça génère des erreurs.
    La preuve :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
        msgbox Window.Document.body.innerHTML
        'msgbox window.document.getElementById("zone2").contentWindow.document.body.innerHTML
    ça marche

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
        msgbox Window.Document.body.innerHTML
        msgbox window.document.getElementById("zone2").contentWindow.document.body.innerHTML
    Erreur : Cet objet ne gère pa cette méthode 'Document.getElementById'

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
        msgbox Window.document.body.innerHTML
        msgbox window.document.getElementById("zone2").contentWindow.document.body.innerHTML
    ça marche.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
        msgbox Window.Document.body.innerHTML
        msgbox window.Document.getElementById("zone2").contentWindow.document.body.innerHTML
    Erreur : Cet objet ne gère pa cette méthode 'Document.getElementById'

    Grâce à votre aide, je vais peut-être enfin pouvoir arriver à faire un clic dans la frame secondaire.

  4. #4
    Membre Expert Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Par défaut
    Je viens de me rendre compte que VBS est extrêmement sensible à la casse.
    Erreur : Cet objet ne gère pa cette méthode 'Document.getElementById'
    Là, je n'en suis pas sûr. Je ne pense pas que ce soit vrai, non.

    Pour que l'erreur là-desus soit provoquée, l'écriture de l'id (ici, "zone2") devrait être fausse ou qu'elle ne devrait être pas là. Ce n'est pas à cause de document étant écrit comme Document.

    Il y a effectivement un tout petit nombre de cas où la casse est important; mais, ici, "document", ce n'en 'est certainement pas un.

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    926
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 926
    Par défaut
    Citation Envoyé par tsuji Voir le message
    Là, je n'en suis pas sûr. Je ne pense pas que ce soit vrai, non.

    Pour que l'erreur là-desus soit provoquée, l'écriture de l'id (ici, "zone2") devrait être fausse ou qu'elle ne devrait être pas là. Ce n'est pas à cause de document étant écrit comme Document.

    Il y a effectivement un tout petit nombre de cas où la casse est important; mais, ici, "document", ce n'en 'est certainement pas un.

    J'ai revérifié et je maintiens mes précédente déclarations pour ce qui concerne .document et .Document

    Vous pouvez vérifier vous-même en mettant ces fichiers sur votre bureau :

    page1.html :
    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <!DOCTYPE html>
    <html>
    <head>
    <title> partage avec hiérarchie imbriquée</title>
    </head>
    <frameset cols="20%,80%">
    <frame id="zone2" src="page1.html" name="zone2">
    <frameset rows="20%,80%">
    <frame name="zone1">
    </frameset>
    </frameset>
    </html>


    maPage.html :
    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <!DOCTYPE html>
    <html>
    <head>
     
    <ul id="menu-vertical">
    	<li><a name="zone2" id="zone2" href="https://www.google.fr">GOOGLE</a>
        </li>
    </ul>
     
    </html>

    test.vbs :

    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
    Option Explicit
    Dim objApp, Window, monURL, count
     
    Set objApp = CreateObject("Shell.Application")
     
    count = -1
    For Each Window In objApp.Windows
      If Window = "Internet Explorer" Then
        count = count+1
        monURL = objApp.Windows(count).locationUrl  
     
        If monURL = "file:///C:/Users/username/Desktop/maPage.html" then	
     
    	   msgbox Window.document.body.innerHTML
    	   msgbox Window.document.getElementById("zone2").contentWindow.document.body.innerHTML
    	   'msgbox Window.document.getElementById("zone2").contentWindow.document.getElementById("zone2").innerText	   
    	   'Window.document.getElementById("zone2").contentWindow.document.getElementById("menu-vertical").getElementsByTagName("a")(0).click
        End if
     
      End if   
     
    Next

  6. #6
    Membre Expert Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Par défaut
    D'abord, ce que vous postez comme maPage.html doit être au juste page1.html, et page1.html, maPage.html - si je ne me trompe !

    Voyons, la page page1.html (postée comme maPage.html) est tellement mal écrite qu'on s'en réjouit ou s'en larmente que combien un browseur soit généreux et tout soit pardonné. On devrait au moins la réécrire page1.html d'une façon un peu plus correcte (<head>...</head><body>...</body>) ?

    Et puis, je varie document en Document ou vice versa ... que se passe-t-il chez vous ? Chez moi, rien de changer.

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

Discussions similaires

  1. Sauvegarder code source page HTML dans var string
    Par Jordywolf dans le forum Swift
    Réponses: 0
    Dernier message: 13/05/2018, 08h44
  2. Code javascript qui s'affiche sur ma page html
    Par Thomas77380 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 18/04/2011, 13h13
  3. code source page html
    Par LoLoBix dans le forum Web
    Réponses: 1
    Dernier message: 09/03/2009, 10h51
  4. Afficher code source HTML
    Par ensi08 dans le forum Débuter
    Réponses: 6
    Dernier message: 07/09/2008, 01h35
  5. récupérer code source page HTML
    Par gianni17 dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 02/07/2007, 15h47

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