Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Het beheerde HTML Document Object Model (DOM) bevat een klasse met de naam HtmlElement waarmee de eigenschappen, methoden en gebeurtenissen worden weergegeven die alle HTML-elementen gemeen hebben. Soms moet u echter toegang krijgen tot leden die niet rechtstreeks beschikbaar worden gesteld door de beheerde interface. In dit onderwerp worden twee manieren besproken voor toegang tot niet-belichte leden, waaronder JScript- en VBScript-functies die zijn gedefinieerd in een webpagina.
Toegang tot niet-uitgelichte leden via beheerde interfaces
HtmlDocument en HtmlElement vier methoden bieden waarmee toegang tot niet-uitgelichte leden mogelijk is. In de volgende tabel ziet u de typen en de bijbehorende methoden.
| Ledentype | Methode(en) |
|---|---|
| Eigenschappen (HtmlElement) | GetAttribute SetAttribute |
| Methoden | InvokeMember |
| Gebeurtenissen (HtmlDocument) | AttachEventHandler DetachEventHandler |
| Gebeurtenissen (HtmlElement) | AttachEventHandler DetachEventHandler |
| Gebeurtenissen (HtmlWindow) | AttachEventHandler DetachEventHandler |
Wanneer u deze methoden gebruikt, wordt ervan uitgegaan dat u een element van het juiste onderliggende type hebt. Stel dat u wilt luisteren naar de Submit gebeurtenis van een FORM element op een HTML-pagina, zodat u bepaalde voorverwerking kunt uitvoeren op de waarden van het FORMvoordat de gebruiker deze naar de server verzendt. Als u controle over de HTML hebt, zou u FORM zo definiëren dat het een uniek ID kenmerk heeft.
<HTML>
<HEAD>
<TITLE>Form Page</TITLE>
</HEAD>
<BODY>
<FORM ID="form1">
... form fields defined here ...
</FORM>
</BODY>
</HTML>
Nadat u deze pagina in het besturingselement WebBrowser hebt geladen, kunt u de methode GetElementById gebruiken om de FORM tijdens runtime op te halen met behulp van form1 als argument.
private void SubmitForm(String formName)
{
HtmlElementCollection elems = null;
HtmlElement elem = null;
if (webBrowser1.Document != null)
{
HtmlDocument doc = webBrowser1.Document;
elems = doc.All.GetElementsByName(formName);
if (elems != null && elems.Count > 0)
{
elem = elems[0];
if (elem.TagName.Equals("FORM"))
{
elem.InvokeMember("Submit");
}
}
}
}
Private Sub SubmitForm(ByVal FormName As String)
Dim Elems As HtmlElementCollection
Dim Elem As HtmlElement
If (WebBrowser1.Document IsNot Nothing) Then
With WebBrowser1.Document
Elems = .All.GetElementsByName(FormName)
If (Not Elems Is Nothing And Elems.Count > 0) Then
Elem = Elems(0)
If (Elem.TagName.Equals("FORM")) Then
Elem.InvokeMember("Submit")
End If
End If
End With
End If
End Sub
Toegang tot niet-beheerde interfaces
U kunt ook toegang krijgen tot niet-uitgelichte leden op de beheerde HTML DOM met behulp van de COM-interfaces (Unmanaged Component Object Model) die door elke DOM-klasse worden weergegeven. Dit wordt aanbevolen als u meerdere aanroepen moet uitvoeren voor niet-belichte leden of als de niet-belichte leden andere niet-beheerde interfaces retourneren die niet zijn verpakt door de beheerde HTML DOM.
In de volgende tabel ziet u alle niet-beheerde interfaces die worden weergegeven via de beheerde HTML DOM. Klik op elke koppeling voor een uitleg van het gebruik en bijvoorbeeld code.
| Typologie | Onbeheerde interface |
|---|---|
| HtmlDocument | DomDocument |
| HtmlElement | DomElement |
| HtmlWindow | DomWindow |
| HtmlHistory | DomHistory |
De eenvoudigste manier om de COM-interfaces te gebruiken, is door een verwijzing toe te voegen naar de niet-beheerde HTML DOM-bibliotheek (MSHTML.dll) van uw toepassing, hoewel dit niet wordt ondersteund.
Toegang tot scriptfuncties
Een HTML-pagina kan een of meer functies definiëren met behulp van een scripttaal zoals JScript of VBScript. Deze functies worden in een SCRIPT pagina op de pagina geplaatst en kunnen op aanvraag worden uitgevoerd of als reactie op een gebeurtenis in de DOM.
U kunt alle scriptfuncties aanroepen die u op een HTML-pagina definieert met behulp van de methode InvokeScript. Als de scriptmethode een HTML-element retourneert, kunt u een cast gebruiken om dit retourresultaat te converteren naar een HtmlElement. Zie InvokeScriptvoor meer informatie en voorbeeldcode.
Zie ook
.NET Desktop feedback