HtmlDocument Klass

Definition

Ger programmatisk åtkomst på den översta nivån till ett HTML-dokument som hanteras av WebBrowser kontrollen.

public ref class HtmlDocument sealed
public sealed class HtmlDocument
type HtmlDocument = class
Public NotInheritable Class HtmlDocument
Arv
HtmlDocument

Exempel

I följande kodexempel används data från Northwind-databasen för att skapa en HTML TABLE dynamiskt med hjälp av CreateElement. Metoden AppendChild används också, först för att lägga till celler (TD element) till rader (TR element), sedan lägga till rader i tabellen och slutligen lägga till tabellen i slutet av det aktuella dokumentet. Kodexemplet kräver att programmet har en WebBrowser kontroll med namnet WebBrowser1. Koden ska anropas när ett dokument har lästs in.

private void DisplayCustomersTable()
{
    DataSet customersSet = new DataSet();
    DataTable customersTable = null;
    SqlDataAdapter sda = new SqlDataAdapter("SELECT * FROM Customers", "Data Source=localhost;Integrated Security=SSPI;Initial Catalog=Northwind;");
    sda.Fill(customersTable);
    customersTable = customersSet.Tables[0];

    if (webBrowser1.Document != null)
    {
        HtmlElement tableRow = null;
        HtmlElement headerElem = null;

        HtmlDocument doc = webBrowser1.Document;
        HtmlElement tableElem = doc.CreateElement("TABLE");
        doc.Body.AppendChild(tableElem);

        HtmlElement tableHeader = doc.CreateElement("THEAD");
        tableElem.AppendChild(tableHeader);
        tableRow = doc.CreateElement("TR");
        tableHeader.AppendChild(tableRow);

        foreach (DataColumn col in customersTable.Columns)
        {
            headerElem = doc.CreateElement("TH");
            headerElem.InnerText = col.ColumnName;
            tableRow.AppendChild(headerElem);
        }

        // Create table rows.
        HtmlElement tableBody = doc.CreateElement("TBODY");
        tableElem.AppendChild(tableBody);
        foreach (DataRow dr in customersTable.Rows)
        {
            tableRow = doc.CreateElement("TR");
            tableBody.AppendChild(tableRow);
            foreach (DataColumn col in customersTable.Columns)
            {
                Object dbCell = dr[col];
                HtmlElement tableCell = doc.CreateElement("TD");
                if (!(dbCell is DBNull))
                {
                    tableCell.InnerText = dbCell.ToString();
                }
                tableRow.AppendChild(tableCell);
            }
        }
    }
}
Private Sub DisplayCustomersTable()
    ' Initialize the database connection.
    Dim CustomerData As New DataSet()
    Dim CustomerTable As DataTable

    Try
        Dim DBConn As New SqlConnection("Data Source=localhost;Integrated Security=SSPI;Initial Catalog=Northwind;")
        Dim DBQuery As New SqlDataAdapter("SELECT * FROM CUSTOMERS", DBConn)
        DBQuery.Fill(CustomerData)
    Catch dbEX As DataException

    End Try

    CustomerTable = CustomerData.Tables("Customers")

    If (Not (WebBrowser1.Document Is Nothing)) Then
        With WebBrowser1.Document
            Dim TableElem As HtmlElement = .CreateElement("TABLE")
            .Body.AppendChild(TableElem)

            Dim TableRow As HtmlElement

            ' Create the table header.
            Dim TableHeader As HtmlElement = .CreateElement("THEAD")
            TableElem.AppendChild(TableHeader)
            TableRow = .CreateElement("TR")
            TableHeader.AppendChild(TableRow)

            Dim HeaderElem As HtmlElement
            For Each Col As DataColumn In CustomerTable.Columns
                HeaderElem = .CreateElement("TH")
                HeaderElem.InnerText = Col.ColumnName
                TableRow.AppendChild(HeaderElem)
            Next

            ' Create table rows.
            Dim TableBody As HtmlElement = .CreateElement("TBODY")
            TableElem.AppendChild(TableBody)
            For Each Row As DataRow In CustomerTable.Rows
                TableRow = .CreateElement("TR")
                TableBody.AppendChild(TableRow)
                For Each Col As DataColumn In CustomerTable.Columns
                    Dim Item As Object = Row(Col)
                    Dim TableCell As HtmlElement = .CreateElement("TD")
                    If Not (TypeOf (Item) Is DBNull) Then
                        TableCell.InnerText = CStr(Item)
                    End If
                    TableRow.AppendChild(TableCell)
                Next
            Next

        End With
    End If
End Sub

Kommentarer

HtmlDocument innehåller en hanterad omslutning runt Internet Explorer dokumentobjekt, även kallat HTML-dokumentobjektmodellen (DOM). Du får en instans av HtmlDocument via Document kontrollens WebBrowser egenskap.

HTML-taggar i ett HTML-dokument kan kapslas i varandra. HtmlDocument representerar alltså ett dokumentträd, vars underordnade är instanser av HtmlElement klassen. I följande kodexempel visas en enkel HTML-fil.

<HTML>
    <BODY>
        <DIV name="Span1">Simple HTML Form</DIV>
        <FORM>
            <SPAN name="TextLabel">Enter Your Name:</SPAN>
            <INPUT type="text" size="20" name="Text1">
        </FORM>
    </BODY>
</HTML>

I det här exemplet HtmlDocument representerar hela dokumentet inuti taggarna HTML . Taggarna BODY, DIVFORMoch SPAN representeras av enskilda HtmlElement objekt.

Det finns flera sätt att komma åt elementen i det här trädet. Använd egenskapen Body för att komma åt taggen BODY och alla dess underordnade objekt. Egenskapen ActiveElement ger dig HtmlElement för -elementet på en HTML-sida som har användarens indatafokus. Alla element på en HTML-sida kan ha ett namn. samlingen All ger åtkomst till var och HtmlElement en med dess namn som ett index. GetElementsByTagName returnerar ett HtmlElementCollection av alla HtmlElement objekt med ett angivet HTML-taggnamn, till exempel DIV eller TABLE. GetElementById returnerar den enda som HtmlElement motsvarar det unika ID som du anger. GetElementFromPoint returnerar HtmlElement det som finns på skärmen vid de angivna muspekarkoordinaterna.

Du kan också använda Forms samlingen och Images för att iterera genom element som representerar användarindataformulär respektive grafik.

HtmlDocument baseras på ohanterade gränssnitt som implementeras av Internet Explorer DHTML DOM: IHTMLDocument, IHTMLDocument2, IHTMLDocument3 och IHTMLDocument4. Endast de vanligaste egenskaperna och metoderna i dessa ohanterade gränssnitt exponeras av HtmlDocument. Du kan komma åt alla andra egenskaper och metoder direkt med hjälp av DomDocument egenskapen, som du kan casta till önskad ohanterad gränssnittspekare.

Ett HTML-dokument kan innehålla ramar, som är olika fönster inuti WebBrowser kontrollen. Varje bildruta visar en egen HTML-sida. Samlingen Frames är tillgänglig via egenskapen Window . Du kan också använda Window egenskapen för att ändra storlek på den visade sidan, bläddra i dokumentet eller visa aviseringar och uppmaningar till användaren.

HtmlDocument exponerar de vanligaste händelserna som du förväntar dig att hantera när du är värd för HTML-sidor. För händelser som inte exponeras direkt av gränssnittet kan du lägga till en hanterare för händelsen med hjälp av AttachEventHandler.

HTML-filer kan innehålla SCRIPT taggar som kapslar in kod som skrivits på något av active scripting-språken, till exempel JScript eller VBScript. Metoden InvokeScript tillhandahåller körning av egenskaper och metoder som definierats i en SCRIPT tagg.

Note

Även om de flesta egenskaper, metoder och händelser på HtmlDocument har behållit samma namn som de har på den ohanterade DOM, har vissa ändrats för konsekvens med .NET Framework.

Egenskaper

Name Description
ActiveElement

Tillhandahåller som HtmlElement för närvarande har fokus på användarindata.

ActiveLinkColor

Hämtar eller anger Color en hyperlänk när en användare klickar på den.

All

Hämtar en instans av HtmlElementCollection, som lagrar alla HtmlElement objekt för dokumentet.

BackColor

Hämtar eller anger bakgrundsfärgen för HTML-dokumentet.

Body

HtmlElement Hämtar för taggenBODY.

Cookie

Hämtar eller anger DE HTTP-cookies som är associerade med det här dokumentet.

DefaultEncoding

Hämtar kodningen som används som standard för det aktuella dokumentet.

Domain

Hämtar eller anger strängen som beskriver domänen för det här dokumentet i säkerhetssyfte.

DomDocument

Hämtar den ohanterade gränssnittspekaren för den här HtmlDocument.

Encoding

Hämtar eller anger teckenkodningen för det här dokumentet.

Focused

Hämtar ett värde som anger om dokumentet har användarens indatafokus.

ForeColor

Hämtar eller anger textfärgen för dokumentet.

Forms

Hämtar en samling med <FORM> alla element i dokumentet.

Images

Hämtar en samling med alla bildtaggar i dokumentet.

LinkColor

Hämtar eller anger färg på hyperlänkar.

Links

Hämtar en lista över alla hyperlänkar i det här HTML-dokumentet.

RightToLeft

Hämtar eller anger textriktningen i det aktuella dokumentet.

Title

Hämtar eller anger textvärdet för taggen <TITLE> i det aktuella HTML-dokumentet.

Url

Hämtar URL:en som beskriver platsen för det här dokumentet.

VisitedLinkColor

Hämtar eller anger färgen på länkar till HTML-sidor som användaren redan har besökt.

Window

Hämtar associerad HtmlWindow med det här dokumentet.

Metoder

Name Description
AttachEventHandler(String, EventHandler)

Lägger till en händelsehanterare för den namngivna HTML DOM-händelsen.

CreateElement(String)

Skapar en ny HtmlElement av den angivna HTML-taggtypen.

DetachEventHandler(String, EventHandler)

Tar bort en händelsehanterare från en namngiven händelse i HTML DOM.

Equals(Object)

Testar objektet för likhet med det aktuella objektet.

ExecCommand(String, Boolean, Object)

Kör det angivna kommandot mot dokumentet.

Focus()

Anger användarens indatafokus på det aktuella dokumentet.

GetElementById(String)

Hämtar en enda HtmlElement med elementets ID attribut som en söknyckel.

GetElementFromPoint(Point)

Hämtar HTML-elementet som finns vid de angivna klientkoordinaterna.

GetElementsByTagName(String)

Hämta en samling element med den angivna HTML-taggen.

GetHashCode()

Hämtar hash-koden för det här objektet.

GetType()

Hämtar den aktuella instansen Type .

(Ärvd från Object)
InvokeScript(String, Object[])

Kör en active scripting-funktion som definierats på en HTML-sida.

InvokeScript(String)

Kör en active scripting-funktion som definierats på en HTML-sida.

MemberwiseClone()

Skapar en ytlig kopia av den aktuella Object.

(Ärvd från Object)
OpenNew(Boolean)

Hämtar en ny HtmlDocument att använda med Write(String) -metoden.

ToString()

Returnerar en sträng som representerar det aktuella objektet.

(Ärvd från Object)
Write(String)

Skriver en ny HTML-sida.

Operatorer

Name Description
Equality(HtmlDocument, HtmlDocument)

Returnerar ett värde som anger om de angivna HtmlDocument instanserna representerar samma värde.

Inequality(HtmlDocument, HtmlDocument)

Returnerar ett värde som anger om de angivna HtmlDocument instanserna inte representerar samma värde.

Händelser

Name Description
Click

Inträffar när användaren klickar var som helst i dokumentet.

ContextMenuShowing

Inträffar när användaren begär att dokumentets snabbmeny ska visas.

Focusing

Inträffar innan fokus ges till dokumentet.

LosingFocus

Inträffar när fokus lämnar en kontroll.

MouseDown

Inträffar när användaren klickar på den vänstra musknappen.

MouseLeave

Inträffar när musen inte längre hovrar över dokumentet.

MouseMove

Inträffar när musen flyttas över dokumentet.

MouseOver

Inträffar när musen flyttas över dokumentet.

MouseUp

Inträffar när användaren släpper den vänstra musknappen.

Stop

Inträffar när navigeringen till en annan webbsida stoppas.

Gäller för

Se även