2012-02-27 54 views
0

我試圖使用一些IE自動化來處理各種內部網頁。其中一些頁面使用iframe和框架,所以我們需要能夠在這些框架內進行處理。IHTMLDocument2/IHTMLDocument3幀數不同

我遇到過問題,如果框架或iframe不顯示與父文檔相同的域中的內容,這很好。

但是,其他的東西出現了,我找不出來。

如果我訪問(例如)http://www.gmail.com/並轉到登錄頁面,使用IHTMLDocument2.frames.length返回1,即使沒有iframe存在。 IHTMLDocument3.getElementsByName(「iframe」)。length按預期返回0。

這似乎只發生在IE9上。 IE6和IE7按照我們的預期工作,我們還沒有在IE8上測試過。

有沒有人有任何想法爲什麼會發生這種情況?顯然有人正在計算實際的標籤,但ITHMLDocument2.frames.length始終在哪裏獲得1?它是一個安全設置等...?

回答

0

根據我在Chrome中的Inspect元素(mac在這裏無法測試IE),gmail至少有5個iframe,這是第一個在body標籤下面的第一個,下面是一些。

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

也許你解析DOM是這些I幀的一個來源而不是外部網頁本身?

確實,其中一個iframe已經有了一個iframe,但其他人沒有;這可能是爲什麼IHTMLDocument行爲不同,但這只是一個猜測......

你必須記住,雖然這兩個接口都是古老的,IE4和5分別。