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

VB 6 et antérieur Discussion :

Probleme avec MSHTML


Sujet :

VB 6 et antérieur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 181
    Par défaut Probleme avec MSHTML
    Bonjour a tous,

    j'ai crée un nouveau projet VB6 en incorporant :

    "Microsoft HTML Object Library" et
    "Microsoft Internet Controls"

    j'ai mis un control "WebBrowser" sur ma feuille, et au demarrage du
    programme, je charge dans celui-ci un fichier HTML, dans lequel
    il y a ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <HTML>
    <HEAD>
    <TITLE>Titre</TITLE>
    </HEAD>
    <body>
     
    <a href="http://www.developpez.net">lien1</a>
    <a href="http://www.developpez.net">lien2</a>
    <a href="http://www.developpez.net">lien3</a>
     
    </BODY>
    </HTML>
    J'aimerais pouvoir dans mon programme, recuperer la destination du lien
    a partir du "WebBrowser" en le selectionnant avec la souris (selection
    en bleu). Je selectionne donc le lien sur la page, et avec un bouton
    j'essai de faire ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Dim html As HTMLDocument
    Dim lien As HTMLLinkElement
    Dim a$
     
    Set html = WebBrowser1.Document
    Set lien = html.activeElement
     
    a$ = lien.getAttribute("href")
    mais il me mets : "Invalid use of Null"

    une chose curieuse, si je remplace la derniere ligne par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    a$ = lien.innerText
    a$ est egal a : "lien1 lien2 lien3"

    j'en conclu que "activeElement" ne me renvoi pas l'element selectionné.

  2. #2
    Membre Expert
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Par défaut
    Salut

    As-tu essayé de récupérer l'élément par son identifiant ou son nom (attribut id ou name de l'élément)? Désolée de n'avoir pas d'exemple à te proposer. Je fais ce genre de manipulation habituellement avec JavaScript. Je n'ai jamais fait en VB.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 181
    Par défaut
    Merci zazaraignée pour ta reponse

    mais..non. J'ai pas essayé. Et je veux pas. Parce que les liens
    dans les pages n'ont pas tous une proprieté "Id" ou "Name" donc...
    Il faut que je puisse identifier un lien dans la page sans pouvoir me
    tromper, meme si les texte et les href sont identiques, mais sans
    utiliser les proprietés "Name" ou "Id", qui bien sur, m'aurait permis d'y arriver.
    Il suffit pour cela que je puisse recuperer l'objet qui identifie de maniere
    unique le lien. Objet ou autres chose . Et il faut que je puisse le faire
    en le selectionnant dans la page. C'est pas compliqué c'que j'demande !
    non ?

  4. #4
    Membre Expert
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Par défaut
    L'autre idée qui me vient est aussi issue de la culture JavaScript (ou VBScript) qui consiste à consulter le tableau des éléments a (hyperliens). Je ne suis pas chez moi (en vacance chez mes parents) alors, je n'ai pas mes ressources habituelles. Je crois cependant que tu pourrais trouver des exemples sur le forum et la faq VBScript. Ça pourra peut-être t'aider.

    [Edit] Regarde aussi sur la section développement Web du site et du forum.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 181
    Par défaut
    Merci pour ton idée, mais j'y ai deja pensé
    je sais comment passer en revu les liens d'une page, mais quand j'ai
    justement, 2 liens avec le meme Text et le meme href, comment je
    fait pour les differencier ??!!
    Le mieux c'est de pouvoir operer sur la selection faites dans le Browser.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 181
    Par défaut
    J'ai reussi a faire ça, mais je n'suis pas sur de moi, dans le sens
    ou je n'sais pas si j'arriverais toujours a choper la balise "A" avec
    "parentElement"...
    j'ai d'ailleurs du utliser "parent.parent" dans le cas ou le lien se
    trouve dans une image, car il renvoi "IMG".
    Si vous trouvez plus efficace...

    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
     
    Dim html As HTMLDocument
    Dim txtrange As IHTMLTxtRange
    Dim a
     
    Set html = WebBrowser1.Document
     
    a = html.selection.Type
     
    If a <> "Control" Then
        Set txtrange = html.selection.createRange
        If txtrange.parentElement.tagName = "A" Then
            MsgBox txtrange.parentElement.getAttribute("href")
        ElseIf txtrange.parentElement.parentElement.tagName = "A" Then
            MsgBox txtrange.parentElement.parentElement.getAttribute("href")
        End If
    End If

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

Discussions similaires

  1. Probleme avec la copie des surfaces
    Par Black_Daimond dans le forum DirectX
    Réponses: 3
    Dernier message: 09/01/2003, 10h33
  2. Problèmes avec le filtrage des ip
    Par berry dans le forum Réseau
    Réponses: 9
    Dernier message: 30/12/2002, 07h51
  3. probleme avec la touche F10
    Par b.grellee dans le forum Langage
    Réponses: 2
    Dernier message: 15/09/2002, 22h04
  4. Probleme avec fseek
    Par Bjorn dans le forum C
    Réponses: 5
    Dernier message: 04/08/2002, 07h17
  5. [Kylix] probleme avec un imagelist
    Par NicoLinux dans le forum EDI
    Réponses: 4
    Dernier message: 08/06/2002, 23h06

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