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


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

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

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

Имя Описание
AsParallel(IEnumerable)

Включает параллелизацию запроса.

AsQueryable(IEnumerable)

Преобразует IEnumerable в IQueryable.

Cast<TResult>(IEnumerable)

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

OfType<TResult>(IEnumerable)

Фильтрует элементы IEnumerable на основе указанного типа.

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

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