IHTMLDocument2/IHTMLDocument3帧数不同



我正在尝试使用一些IE自动化来处理各种内部网页。其中一些页面使用iframe和frames,因此我们也需要能够在这些frames内部进行处理。

如果框架或iframe不在与父文档相同的域中显示内容,我会遇到一些问题,这很好。

然而,还有一些事情出现了,我想不通。

如果我访问(例如)http://www.gmail.com/然后转到登录页面,使用IHTMLDocument2.frames.length返回1,即使不存在iframes。IHTMLDocument3.getElementsByName("iframe").length按预期返回0。

这似乎只发生在IE9上。IE6和IE7正如我们所期望的那样工作,我们还没有在IE8上进行测试。

有人知道为什么会发生这种事吗?显然,有人在计算实际的标签,但ITHMLDocument2.frames.length在哪里?这是安全设置等吗?

根据我在Chrome中的Inspect Element(这里的mac无法测试IE),gmail至少有5个iframe,这是body标签下面的第一个,还有几个。

<iframe style="position: absolute; width: 9em; height: 9em; top: -99em; " tabindex="-1" aria-hidden="true"></iframe>

也许您正在解析的DOM是其中一个Iframe的源,而不是外部页面本身?

事实上,其中一个iframe有一个孩子iframe,但其他人没有;这可能就是IHTMLDocument表现不同的原因,但这只是猜测。。。

不过你必须记住,这两个接口都是古老的,分别是IE4和5。

最新更新