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

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

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

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

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

2) Если я пытаюсь получить доступ к одному из мэйнфреймов через getelementbyname, он работает, но если я пытаюсь получить доступ к субкадрам контент-фрейма ( 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...

1 ответ

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

Другие вопросы по тегам