WebBrowser.Document.InvokeScript() en VB6

Le
ZoroBozo
Salut.

Existe-t-il un moyen d'appeler une fct javascript d'une page chargée
dans un ctontrôle WebBrowser à partir d'une form VB6 ?

Pour VB.NET, j'ai vu que le contrôle WebBrowser fourni une méthode
InvokeScript(), mais celle-ci semble absente de VB6.

Comment faire ?
Questions / Réponses high-tech
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
parci
Le #19091911
On 10 avr, 13:08, ZoroBozo
Salut.

Existe-t-il un moyen d'appeler une fct javascript d'une page chargée
dans un ctontrôle WebBrowser à partir d'une form VB6 ?

Pour VB.NET, j'ai vu que le contrôle WebBrowser fourni une méthode
InvokeScript(), mais celle-ci semble absente de VB6.

Comment faire ?



Avec une référence à Microsoft HTML Object Library :

Dim IHTMLDoc2 As MSHTML.IHTMLDocument2
Dim IWindow2 As MSHTML.IHTMLWindow2

Set IHTMLDoc2 = WebBrowser.Document
Set IWindow2 = IHTMLDoc2.parentWindow

If Not IWindow2 Is Nothing Then
IWindow2.execScript sScriptName
End If

Set IWindow2 = Nothing
Set IHTMLDoc2 = Nothing
ZoroBozo
Le #19093761
In article <18e547f2-32ea-4606-8d20-00c2a93c0043
@n1g2000vba.googlegroups.com>, says...
On 10 avr, 13:08, ZoroBozo > Existe-t-il un moyen d'appeler une fct javascript d'une page chargée
> dans un ctontrôle WebBrowser à partir d'une form VB6 ?
>
> Pour VB.NET, j'ai vu que le contrôle WebBrowser fourni une méthode
> InvokeScript(), mais celle-ci semble absente de VB6.
>
> Comment faire ?

Avec une référence à Microsoft HTML Object Library :




Merci, Parci.

J'ai fini par trouver une solution de contournement entre temps :
j'explique ça sur http://tinymce.moxiecode.com/punbb/viewtopic.php?pid 52446 (j'y suis eremax)

Mais, je garde ce que tu me dis sous le coude, au cas où ma solution ne
s'avère pas solide...

Sinon, est-ce que la référence à cette librairie ne pose pas problème
sur certaines config (il me semble avoir lu ça quelque part, mais me
souviens plus où) ?
parci
Le #19094321
ZoroBozo a écrit :

Mais, je garde ce que tu me dis sous le coude, au cas où ma solution ne
s'avère pas solide...

Sinon, est-ce que la référence à cette librairie ne pose pas problème
sur certaines config (il me semble avoir lu ça quelque part, mais me
souviens plus où) ?



Je viens de faire un petit essai, pas de soucis particulier avec IE7 et
Vista. Je n'avais pas non plus eu de problème avec IE6 et des versions
plus anciennes de Windows (la référence du webbrowser change entre IE6
et IE7 mais c'est tout).

Ta solution d'ajouter un lien au DOM pour appeler une fonction
javascript n'est pas mal non plus. Pour modifier le DOM tu utilises une
autre librairie que MSHTML ?
ZoroBozo
Le #19107201
In article says...
ZoroBozo a écrit :

> Mais, je garde ce que tu me dis sous le coude, au cas où ma solution ne
> s'avère pas solide...
>
> Sinon, est-ce que la référence à cette librairie ne pose pas problème
> sur certaines config (il me semble avoir lu ça quelque part, mais me
> souviens plus où) ?

Je viens de faire un petit essai, pas de soucis particulier avec IE7 et
Vista. Je n'avais pas non plus eu de problème avec IE6 et des versions
plus anciennes de Windows (la référence du webbrowser change entre IE6
et IE7 mais c'est tout).

Ta solution d'ajouter un lien au DOM pour appeler une fonction
javascript n'est pas mal non plus. Pour modifier le DOM tu utilises une
autre librairie que MSHTML ?




OK, donc si je comprend bien, puisque la référence MSHTML change entre
IE6 et 7, ça a une influence sur l'install uniquement.

Bon, sinon, ce que je fais marche, donc je garde (tjrs une référence de
gagnée). Le principe est simple : tout le travail dans la page web
chargée dans le webbrowser se passe en javascript de l'intérieur de la
page (des liens appelant des fcts javascript) et lorsque quelque chose
est prêt à être récupéré par VB dans un élément DOM (via innerHTML), je
déclenche l'évènement WebBrowser_StatusTextChange avec un chaine
particulière dans la barre de status du webbrowser : c'est tout bête,
mais ça marche ;)
Publicité
Poster une réponse
Anonyme