IHTMLDocument2 / IHTMLDocument3帧数不同

时间:2012-02-27 01:16:48

标签: internet-explorer iframe frames ihtmldocument2

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

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

然而,出现了一些我无法弄清楚的事情。

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

这似乎只发生在IE9上。 IE6和IE7按预期工作,我们还没有在IE8上测试过。

有没有人为什么会这样?显然有人在计算实际的标签,但是ITHMLDocument2.frames.length从哪里开始计算?它是安全设置等等吗?

1 个答案:

答案 0 :(得分:0)

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

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

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

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

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