不知道有沒有人注意到,IFRAME在載入後,若IFRAME的URL已被cache,雖然載入會很快完成,但在呼叫的頁面,假如透過先前設定得物件,卻無法獲得其innerHTML屬性。
我是在load前設定
referenceDoc=document.getElementById(iframe_id).contentWindow.document
load後再透過
referenceDoc.body.innerHTML
來取得這個值,但行不通。
也許是因為我呼叫的方式不對,所以不能算是Gecko engine的bug;不過我在IE6sp1確認過可以well work。
暫時的解決辦法有兩個,一是reload,不過這是個ugly的方法。二是每次要呼叫前重設物件,但這也怪怪的。
較詳細的實例在
http://lyrics.meicho.com.tw/game/game.pl?seg=memoff ,不嫌棄的話可以看看(原始碼很亂就是了 ^_^;;)
癥結在
http://lyrics.meicho.com.tw/game/game.js 的 function loadReference():下面是重設物件的解決辦法
referenceDoc=getDocObj('reference').contentWindow.document; // 不能省略這項設定(IE可):bug?
抱歉,因為是直接給人看的,所以沒有test與比較的page。不過上面那行註解起來後,用Gecko engine確實就看不到了。
假如是觀念方面,我是這樣想的:既然先前已經設定過了referenceDoc為一個reference,那照理來說應該就沒有必要再使用前還需要重設其值才對。
若是有人能回答,就太感謝了。若是不成…
英文不好,假如有人可以幫我問問那邊的NEWS,就拜託了(一拜)