GetelementsByTagName, кажется, не работает должным образом

1

этот вопрос звучит глупо, но как получилось, когда я использую функцию GetElementsByTagname ( "frame" ), он возвращает только 3 как длину, а не 5, как я ожидал?

Вот HTML веб-страницы, где я подсчитал в 5 раз вид тэга "кадр", но когда я прошу длину в VBA я получаю 3...

Мои наблюдения:

1) Вы можете видеть, что 3 - это количество основных кадров (top_navigation, contentframe, dummyframe)

2) Если я пытаюсь получить доступ к одному из мейнфреймов через getelementbyname, он работает, но если я попытаюсь получить доступ к подкадрам contentframe (leftnavigation или postfachcontent), это не сработает (обнаружено 0 элемента)

Вот мой код:

Dim Frame As IHTMLElementCollection
  Set Frame = IEDoc.getElementsByName("contentframe") ' this works and returns 1 item
   MsgBox Frame.Length
   Set Frame = IEDoc.getElementsByName("postfachcontent")
  MsgBox Frame.Length ' this returns 0 item


Dim Collection As IHTMLElementCollection

Set Collection = IEDoc.getElementsByTagName("frame")
MsgBox Collection.Length ' this returns 3 and I expected 5...
  • 0
    Вы пытались использовать MSHTML.FramesCollection? установка из IEDoc.Frames?
  • 0
    Я никогда не слышал о типе MSHTML.FramesCollection. Как мне это использовать? Если я просто изменю тип коллекции на него, у меня, конечно, будет несоответствие.
Показать ещё 15 комментариев
Теги:
internet-explorer
getelementsbytagname
getelementsbyname

1 ответ

0

На этой странице всего 3 кадра, остальные находятся внутри встроенного фрейма html, который getElementsByTagName не может получить доступ, поскольку это другое дерево DOM.

  • 0
    Хммм, я вижу, и есть ли способ доступа к содержимому этих 3-х мейнфреймов?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню