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.