Framesets

Framesets

Это руководство показывает, как читать устаревшую структуру страниц с фреймами в Aspose.Words FOSS для .NET, используя классы Frameset и FramesetCollection, которые представляют страницу с фреймами и её дочерние фреймы, когда структура документа моделирует набор фреймов.


Класс Frameset

Frameset представляет страницу с фреймами или отдельный фрейм на странице с фреймами. Document.Frameset возвращает корневой Frameset для документа, загруженного из фреймовой структуры HTML. FrameDefaultUrl (string) — это URL веб-страницы или имя файла документа, отображаемое в этом фрейме. IsFrameLinkToFile (bool) указывает, является ли значение FrameDefaultUrl внешним ресурсом, на который ссылается фрейм. ChildFramesets возвращает FramesetCollection дочерних фреймов и страниц с фреймами, вложенных в этот.


Итерация дочерних фреймов с помощью FramesetCollection

FramesetCollection реализует IEnumerable<Frameset>, поэтому GetEnumerator() поддерживает foreach итерацию по фреймам, которые он содержит. Count сообщает количество фреймов или страниц с фреймами в коллекции. Сочетайте Count и итерацию с ChildFramesets, чтобы рекурсивно обходить вложенную структуру страниц с фреймами — каждый дочерний Frameset может сам содержать дальнейшие ChildFramesets.


Советы и лучшие практики

  • Проверьте Document.Frameset на наличие null перед чтением его свойств — большинство документов не являются страницами с фреймами, поэтому это свойство заполняется только когда исходный HTML использовал макет с фреймами.
  • Обойдите ChildFramesets рекурсивно (а не предполагая плоскую одноуровневую структуру), поскольку страница с фреймами может вложить в свои фреймы другие страницы с фреймами.
  • Используйте IsFrameLinkToFile, чтобы различать фрейм, ссылающийся на внешний ресурс, и фрейм, в котором имя файла документа встраивается напрямую в FrameDefaultUrl.
  • FramesetCollection.Count — простой способ проверить, есть ли у Frameset дочерние элементы, перед итерацией.

Распространённые проблемы

ПроблемаПричинаИсправление
Document.Frameset является nullДокумент не был загружен из HTML источника, основанного на фреймахУбедитесь, что исходный документ действительно использовал HTML фреймы, прежде чем полагаться на это свойство
Итерация ChildFramesets пропускает вложенные фреймыИтерация была выполнена только на верхнем уровнеРекурсивно обрабатывать каждый дочерний Frameset.ChildFramesets, вместо итерации только на один уровень глубже
Не удаётся определить, указывает ли кадр на файл или URLIsFrameLinkToFile не был проверенПрочитайте IsFrameLinkToFile вместе с FrameDefaultUrl, чтобы знать, как разрешить цель

FAQ

Что такое Frameset в Aspose.Words FOSS для .NET?

Это представляет страницу с фреймами или отдельный фрейм на странице с фреймами, представленный как Document.Frameset для документов, загруженных из источника HTML с использованием фреймов.

Как перечислить все фреймы во фреймсете?

Итерировать Frameset.ChildFramesets (a FramesetCollection) с помощью GetEnumerator() / foreach, рекурсивно проходя в любой дочерний элемент, который сам имеет дальнейшие ChildFramesets.

Как узнать, сколько дочерних фреймов у Frameset?

Прочитайте FramesetCollection.Count в его свойстве ChildFramesets.

Что IsFrameLinkToFile вам говорит?

Определяет, является ли веб-страница или имя файла документа в FrameDefaultUrl внешним ресурсом, на который ссылается фрейм.


API Reference Сводка

Класс/МетодОписание:
Document.FramesetКорневой Frameset для документа, загруженного из фрейм-базированного источника HTML
FramesetПредставляет страницу с фреймами или отдельный фрейм на странице с фреймами
Frameset.FrameDefaultUrlURL веб-страницы или имя файла документа, отображаемого во фрейме
Frameset.IsFrameLinkToFileЯвляется ли FrameDefaultUrl внешним связанным ресурсом
Frameset.ChildFramesetsFramesetCollection дочерних фреймов и страниц фреймов
FramesetCollectionКоллекция экземпляров Frameset; Count, GetEnumerator

См. также:

 Русский