这个问题听起来很愚蠢,但是当我使用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...
答案 0 :(得分:0)
该页面上只有3个框架,其余部分位于嵌入式html框架内,getElementsByTagName无法访问,因为它是一个不同的DOM树。