HtmlDocument Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Предоставляет программный доступ верхнего уровня к HTML-документу, размещенного элементом WebBrowser управления.
public ref class HtmlDocument sealed
public sealed class HtmlDocument
type HtmlDocument = class
Public NotInheritable Class HtmlDocument
- Наследование
-
HtmlDocument
Примеры
В следующем примере кода данные из базы данных Northwind используются для динамического HTML TABLE создания CreateElement. Метод AppendChild также используется, сначала для добавления ячеек (TD элементов) в строки (TR элементы), а затем для добавления строк в таблицу и, наконец, для добавления таблицы в конец текущего документа. В примере кода требуется, чтобы у приложения был WebBrowser элемент управления с именем WebBrowser1. Код должен вызываться после загрузки документа.
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
Комментарии
HtmlDocument предоставляет управляемую оболочку вокруг объекта документа Internet Explorer, также известного как объектная модель HTML-документа (DOM). Вы получаете экземпляр HtmlDocument с помощью Document свойства WebBrowser элемента управления.
Теги HTML внутри HTML-документа можно вложить в другую. HtmlDocument таким образом представляет дерево документов, дочерние элементы которого HtmlElement являются экземплярами класса. В следующем примере кода показан простой HTML-файл.
<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>
В этом примере HtmlDocument представляет весь документ внутри HTML тегов.
DIV
FORM Теги BODYи SPAN теги представлены отдельными HtmlElement объектами.
Существует несколько способов доступа к элементам в этом дереве.
Body Используйте свойство для доступа к тегу BODY и всем его дочерним элементам. Свойство ActiveElement предоставляет HtmlElement элемент на HTML-странице с фокусом ввода пользователя. Все элементы на HTML-странице могут иметь имя; All Коллекция предоставляет доступ к каждому HtmlElement из них с его именем в качестве индекса.
GetElementsByTagName возвращает HtmlElementCollection все HtmlElement объекты с заданным именем HTML-тега, например DIV или TABLE.
GetElementById возвращает один соответствующий HtmlElement уникальному идентификатору, который вы предоставляете.
GetElementFromPoint возвращает HtmlElement значение, которое можно найти на экране в указанных координатах указателя мыши.
Кроме того, можно использовать и Images коллекцию Forms для итерации элементов, представляющих пользовательские входные формы и графику соответственно.
HtmlDocumentоснован на неуправляемых интерфейсах, реализованных DHTML DOM Internet Explorer: IHTMLDocument, , IHTMLDocument2IHTMLDocument3и IHTMLDocument4. Предоставляются HtmlDocumentтолько наиболее часто используемые свойства и методы в этих неуправляемых интерфейсах. Доступ ко всем другим свойствам и методам можно получить непосредственно с помощью DomDocument свойства, который можно привести к нужному неуправляемому указателю интерфейса.
HTML-документ может содержать кадры, которые находятся в разных окнах WebBrowser элемента управления. Каждый кадр отображает собственную HTML-страницу. Коллекция Frames доступна через Window свойство. Вы также можете использовать Window свойство для изменения размера отображаемой страницы, прокрутки документа или отображения оповещений и запросов пользователя.
HtmlDocument предоставляет наиболее распространенные события, которые будут обрабатываться при размещении HTML-страниц. Для событий, не предоставляемых непосредственно интерфейсом, можно добавить обработчик для события с помощью AttachEventHandler.
HTML-файлы могут содержать SCRIPT теги, которые инкапсулируют код, написанный на одном из языков активного скрипта, таких как JScript или VBScript. Метод InvokeScript предоставляет выполнение свойств и методов, определенных в теге SCRIPT .
Замечание
Хотя большинство свойств, методов и событий HtmlDocument сохраняют те же имена, что и у неуправляемых DOM, некоторые из них были изменены для согласованности с .NET Framework.
Свойства
| Имя | Описание |
|---|---|
| ActiveElement |
HtmlElement Предоставляет фокус ввода пользователей в данный момент. |
| ActiveLinkColor |
Возвращает или задает Color гиперссылку при щелчке пользователя. |
| All |
Возвращает экземпляр HtmlElementCollection, в котором хранятся все HtmlElement объекты для документа. |
| BackColor |
Возвращает или задает цвет фона HTML-документа. |
| Body |
HtmlElement
|
| Cookie |
Возвращает или задает файлы cookie HTTP, связанные с этим документом. |
| DefaultEncoding |
Возвращает кодировку, используемую по умолчанию для текущего документа. |
| Domain |
Возвращает или задает строку, описывающую домен этого документа в целях безопасности. |
| DomDocument |
Возвращает неуправляемый указатель интерфейса для этого HtmlDocument. |
| Encoding |
Возвращает или задает кодировку символов для этого документа. |
| Focused |
Возвращает значение, указывающее, имеет ли документ фокус ввода пользователей. |
| ForeColor |
Возвращает или задает цвет текста для документа. |
| Forms |
Возвращает коллекцию всех |
| Images |
Возвращает коллекцию всех тегов изображений в документе. |
| LinkColor |
Возвращает или задает цвет гиперссылок. |
| Links |
Возвращает список всех гиперссылок в этом HTML-документе. |
| RightToLeft |
Возвращает или задает направление текста в текущем документе. |
| Title |
Возвращает или задает текстовое значение тега |
| Url |
Возвращает URL-адрес, описывающий расположение этого документа. |
| VisitedLinkColor |
Возвращает или задает цвет ссылок на HTML-страницы, которые пользователь уже посетил. |
| Window |
Возвращает связанный с этим документом HtmlWindow . |
Методы
| Имя | Описание |
|---|---|
| AttachEventHandler(String, EventHandler) |
Добавляет обработчик событий для именованного события HTML DOM. |
| CreateElement(String) |
Создает новый из |
| DetachEventHandler(String, EventHandler) |
Удаляет обработчик событий из именованного события в HTML-DOM. |
| Equals(Object) |
Проверяет объект на равенство по текущему объекту. |
| ExecCommand(String, Boolean, Object) |
Выполняет указанную команду в документе. |
| Focus() |
Задает фокус ввода пользователей на текущий документ. |
| GetElementById(String) |
Извлекает один из HtmlElement атрибутов |
| GetElementFromPoint(Point) |
Извлекает HTML-элемент, расположенный по указанным координатам клиента. |
| GetElementsByTagName(String) |
Извлеките коллекцию элементов с указанным тегом HTML. |
| GetHashCode() |
Извлекает хэш-код для этого объекта. |
| GetType() |
Возвращает Type текущего экземпляра. (Унаследовано от Object) |
| InvokeScript(String, Object[]) |
Выполняет функцию активного скрипта, определенную на HTML-странице. |
| InvokeScript(String) |
Выполняет функцию активного скрипта, определенную на HTML-странице. |
| MemberwiseClone() |
Создает неглубокую копию текущей Object. (Унаследовано от Object) |
| OpenNew(Boolean) |
Получает новое HtmlDocument , используемое с методом Write(String) . |
| ToString() |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |
| Write(String) |
Записывает новую HTML-страницу. |
Операторы
| Имя | Описание |
|---|---|
| Equality(HtmlDocument, HtmlDocument) |
Возвращает значение, указывающее, представляют ли указанные HtmlDocument экземпляры одно и то же значение. |
| Inequality(HtmlDocument, HtmlDocument) |
Возвращает значение, указывающее, не представляют ли указанные HtmlDocument экземпляры одинаковые значения. |
События
| Имя | Описание |
|---|---|
| Click |
Происходит, когда пользователь щелкает в любом месте документа. |
| ContextMenuShowing |
Происходит, когда пользователь запрашивает контекстное меню документа. |
| Focusing |
Происходит перед тем, как фокус будет передан документу. |
| LosingFocus |
Происходит при выходе фокуса из элемента управления. |
| MouseDown |
Происходит, когда пользователь нажимает левую кнопку мыши. |
| MouseLeave |
Происходит, когда указатель мыши больше не наведен на документ. |
| MouseMove |
Происходит при перемещении мыши по документу. |
| MouseOver |
Происходит при перемещении мыши по документу. |
| MouseUp |
Происходит, когда пользователь освобождает левую кнопку мыши. |
| Stop |
Происходит при остановке навигации на другую веб-страницу. |