GetelementsByTagName似乎无法正常工作

时间:2016-11-09 10:47:25

标签: html vba internet-explorer getelementsbytagname getelementsbyname

这个问题听起来很愚蠢,但是当我使用GetElementsByTagname函数(" frame")时,它只返回3作为长度而不是我预期的5?

这是HTML of the webpage ,其中我计算了标记名的显示的5倍" frame"但当我要求VBA的长度时,我得到3 ...

我的观察:

1)你可以看到3是主帧的数量(top_navigation,contentframe,dummyframe)

2)如果我尝试通过getelementbyname访问其中一个大型机,它可以工作,但如果我尝试访问内容帧的子帧(leftnavigation或postfachcontent),它就不起作用(检测到0项)< / p>

这是我的代码:

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 个答案:

答案 0 :(得分:0)

该页面上只有3个框架,其余部分位于嵌入式html框架内,getElementsByTagName无法访问,因为它是一个不同的DOM树。