问题描述
这个问题听起来很愚蠢,但是当我使用GetElementsByTagname(frame)函数时,它只返回3作为长度而不是我预期的5?
this question sounds stupid but how come when I use the function GetElementsByTagname("frame") , it only returns 3 as a length and not 5 as I expected ?
以下是,其中我计算了该标记名的5倍框架,但当我在VBA中询问长度时,我得到3 ...
Here is the HTML of the webpage where I counted 5 times the apparition of the tagname "frame" but when I ask for the length in VBA I get 3...
我的观察结果:
1)你可以看到3是主帧的数量(top_navigation,contentframe,dummyframe)
1) You can see that 3 is the number of main frames (top_navigation, contentframe, dummyframe)
2)如果我尝试通过getelementbyname访问其中一个大型机,它可以工作,但如果我尝试访问内容帧的子帧(leftnavigation或postfachcontent)它不起作用(检测到0项)
2) If I try to access to one of the mainframes via getelementbyname, it works but if I try to access on the the subframes of contentframe ( leftnavigation or postfachcontent) it doesn't work ( 0 item detected)
这是我的代码:
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树。
Only 3 frames are on that page, the rest are inside an embedded html frame which getElementsByTagName cannot access as it is a different DOM tree.
这篇关于GetelementsByTagName似乎无法正常工作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!