этот вопрос звучит глупо, но как получилось, когда я использую функцию 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...
На этой странице всего 3 кадра, остальные находятся внутри встроенного фрейма html, который getElementsByTagName не может получить доступ, поскольку это другое дерево DOM.