2009-11-30 1 views
0

J'ai un WPBr WebBrowser qui charge une page HTML avec des fonctions vbScript à partir de l'intranet Je veux exécuter une de ces fonctions et récupérer la valeur de retour.WPF WebBrowser invoquer un VBScript et récupérer sa valeur de retour

Malheureusement je n'ai aucune possibilité de modifier la page intranet

La fonction retourne une valeur booléenne et est comme suit

Function IsAltered(strMode) 

' This procedure checks to see if Changes have been made without saving. 
Dim objItem, blnIsAltered 
IsAltered = False 
blnIsAltered = False 

For Each objItem In window.document.all 
    If (objItem.tagName = "INPUT" And objItem.className <> "Lbl" And objItem.className <> "NAF" And objItem.className <> "PreDispNoChange") Or _ 
     objItem.tagname = "SELECT" Or objItem.tagname = "TEXTAREA" Then 
     If Left(objItem.Id, 3) <> "hid" And objItem.Type <> "hidden" And objItem.Style.Visibility <> "hidden" Then 
      If HasValueChanged(ObjItem.Id, Trim(objItem.Value)) Then 
       blnIsAltered = True 
       Exit For 
      End if 
     End If 
    End If 
Next 
IsAltered = blnIsAltered End Function 

quelqu'un peut-il suggérer une façon de mettre en œuvre cette

Merci

Cordialement

Col

Répondre

0

System.Windows.Controls.WebBrowser possède une méthode appelée InvokeScript, qui, selon la documentation «Exécute une fonction de script implémentée par le document actuellement chargé».

Vous pourriez vouloir essayer cela.

+0

Je l'ai essayé d'utiliser cela, mais il y a deux questions 1) Je reçois l'erreur suivante messsage « Nom inconnu (Exception de HRESULT: 0x80020006 (DISP_E_UNKNOWNNAME).) » 2) il y a un retour de vide sur invokeScript, donc je ne peux pas vérifier si la fonction renvoie true ou false? Merci Colm – Colmdoc

+0

Apparemment, il existe certains problèmes avec le contrôle WPF WebBrowser. Voir le problème de StackOverflow concernant les différences entre les versions WPF et WinForms (voir marge). Vous souhaiterez peut-être basculer vers la version WinForms de WebBrowser. N'oubliez pas qu'il est relativement facile d'intégrer des composants WinForms dans WPF. De cette façon, vous obtenez un accès complet au DOM HTML. – kmontgom

+0

merci je vais essayer et revenir à vous – Colmdoc

Questions connexes