Поделиться через


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.

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

Если вы создаете Open новые окна с помощью методов или OpenNew , а документы, размещенные в этих окнах, содержат FRAME элементы или IFRAME , эти элементы будут отображаться на 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.

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

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