PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2025 → Windev Webbrowser dotnet executer Javascript
Windev Webbrowser dotnet executer Javascript
Iniciado por Francois, 06,nov. 2019 19:31 - 1 respuesta
Miembro registrado
72 mensajes
Publicado el 06,noviembre 2019 - 19:31
Bonjour,
J'ai beau chercher, je ne trouve nulle part comment exécuter du code Javascript dans un champ dotnet webbrowser.
Je suppose que c'est avec InvokeScript?
Quelqu'un a-t-il déjà réussi?
Je souhaite:
- passer du code JS sous forme de chaine (comme avec ExecuteJS)
- appeler une fonction JS existante dans le contenu

PS: ne me dites pas d'utiliser le champ HTML. Ce que je veux faire doit nécessairement passer par un activeX ou un dotnet webbrowser.
Mensaje modificado, 06,noviembre 2019 - 20:04
Miembro registrado
72 mensajes
Publicado el 06,noviembre 2019 - 22:56
J'ai trouvé.
1/ Passer du code JS sous forme de chaine (comme avec ExecuteJS):
newcodeJS est une chaine=[
function MaFonction(){
alert('hello');
}
MaFonction();
]
DOTNET_WB.Navigate("javascript:"+newcodeJS)

Attention, ne pas mettre de commentaires // dans la chaine du code JS !!
Le code JS est seulement exécuté, et non injecté ! Mais bon, c'est ce qu'on souhaite faire dans 90% des cas.
Cette façon de faire évite de prévoir X fonctions à l'initialisation du contenu.
Il est intéressant de noter que l'on peut manipuler les objets créés à l'initialisation du contenu, et exécuter des fonctions du genre
mongraphe.redraw();

2/ Appeler une fonction JS existante dans le contenu:
DOTNET_WB.Document.InvokeScript("MaFonction")
Mensaje modificado, 06,noviembre 2019 - 23:10