Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

WebBrowser.Document.InvokeScript() en VB6

4 réponses
Avatar
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 ?

4 réponses

Avatar
parci
On 10 avr, 13:08, ZoroBozo wrote:
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
Avatar
ZoroBozo
In article <18e547f2-32ea-4606-8d20-00c2a93c0043
@n1g2000vba.googlegroups.com>, says...
On 10 avr, 13:08, ZoroBozo wrote:
> 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ù) ?
Avatar
parci
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 ?
Avatar
ZoroBozo
In article <49df932a$0$29978$,
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 ;)