HtmlWindowCollection Класс

Определение

Представляет окна, находящиеся внутри другого объекта HtmlWindow.

public ref class HtmlWindowCollection : System::Collections::ICollection
public class HtmlWindowCollection : System.Collections.ICollection
type HtmlWindowCollection = class
    interface ICollection
    interface IEnumerable
Public Class HtmlWindowCollection
Implements ICollection
Наследование
HtmlWindowCollection
Реализации

Примеры

Следующий пример кода проверяет каждый документ на странице, содержащей кадры, и создает таблицу всех исходящих гиперссылок с каждой страницы для последующей проверки.

private void GetLinksFromFrames()
{
    Hashtable linksTable = new Hashtable();
    string frameUrl;

    if (!(webBrowser1.Document == null))
    {
        HtmlWindow currentWindow = webBrowser1.Document.Window;
        if (currentWindow.Frames.Count > 0)
        {
            foreach (HtmlWindow frame in currentWindow.Frames)
            {
                frameUrl = frame.Url.ToString();
                Hashtable frameLinksHash = new Hashtable();

                linksTable.Add(frameUrl, frameLinksHash);
                foreach (HtmlElement hrefElement in frame.Document.Links)
                {
                    frameLinksHash.Add(hrefElement.GetAttribute("HREF"), "Url");
                }
            }
        }
        else
        {
            Hashtable docLinksHash = new Hashtable();
            linksTable.Add(webBrowser1.Document.Url.ToString(), docLinksHash);

            foreach (HtmlElement hrefElement in webBrowser1.Document.Links)
            {
                docLinksHash.Add(hrefElement.GetAttribute("HREF"), "Url");
            }
        }
    }
}
Dim LinksTable As Hashtable

Private Sub GetLinksFromFrames()
    LinksTable = New Hashtable()
    Dim FrameUrl As String

    If (WebBrowser1.Document IsNot Nothing) Then
        With WebBrowser1.Document
            Dim CurrentWindow As HtmlWindow = .Window
            If (CurrentWindow.Frames.Count > 0) Then
                For Each Frame As HtmlWindow In CurrentWindow.Frames
                    FrameUrl = Frame.Url.ToString()
                    Dim FrameLinksHash As New Hashtable()
                    LinksTable.Add(FrameUrl, FrameLinksHash)

                    For Each HrefElement As HtmlElement In Frame.Document.Links
                        FrameLinksHash.Add(HrefElement.GetAttribute("HREF"), "Url")
                    Next
                Next
            Else
                Dim DocLinksHash As New Hashtable()
                LinksTable.Add(.Url.ToString(), DocLinksHash)

                For Each HrefElement As HtmlElement In .Links
                    DocLinksHash.Add(HrefElement.GetAttribute("HREF"), "Url")
                Next
            End If
        End With
    End If
End Sub

Комментарии

HTML-документ может состоять из FRAMESET того, что определяет несколько фиксированных FRAME объектов, каждый из которых содержит собственную HTML-страницу. Кроме того, документ может содержать ряд IFRAME объектов, которые могут размещать документы произвольно внутри других документов. FRAME объекты и IFRAME объекты представлены на самом верхнем уровне по объекту HtmlWindowCollection, который содержит элементы типа HtmlWindow.

HtmlWindowCollectionIEnumerator поддерживает интерфейс, чтобы его можно было использовать в конструкциях цикла. Он также определяет метод Item, который позволяет получить доступ к элементам коллекции с помощью вызова метода или с помощью стандартного синтаксиса массива.

Если вы создаете новые окна с Open помощью методов или OpenNew документов, размещенных в этих окнах, или IFRAME FRAME элементов, эти элементы будут отображаться на HtmlWindowCollection родительской странице.

Дополнительные сведения о кадрах см. в документации по свойству Frames .

Свойства

Count

Получает количество элементов коллекции.

Item[Int32]

Получает окно рамки, предоставляя позицию рамки в коллекции.

Item[String]

Получает окно в рамке путем предоставления имени рамки.

Методы

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
GetEnumerator()

Возвращает перечислитель, который может выполнить итерацию всех элементов в коллекции HtmlWindowCollection.

GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetType()

Возвращает объект Type для текущего экземпляра.

(Унаследовано от Object)
MemberwiseClone()

Создает неполную копию текущего объекта Object.

(Унаследовано от Object)
ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)

Явные реализации интерфейса

ICollection.CopyTo(Array, Int32)

Копирует элементы коллекции в Array начиная с определенного индекса в Array.

ICollection.IsSynchronized

Возвращает значение, указывающее, является ли доступ к коллекции синхронизированным (потокобезопасным).

ICollection.SyncRoot

Возвращает объект, который можно использовать для синхронизации доступа к коллекции.

Методы расширения

Cast<TResult>(IEnumerable)

Приводит элементы объекта IEnumerable к заданному типу.

OfType<TResult>(IEnumerable)

Выполняет фильтрацию элементов объекта IEnumerable по заданному типу.

AsParallel(IEnumerable)

Позволяет осуществлять параллельный запрос.

AsQueryable(IEnumerable)

Преобразовывает коллекцию IEnumerable в объект IQueryable.

Применяется к

См. также раздел