MozTW 討論區 https://forum.moztw.org/ |
|
有關IFRAME載入後無法從caller取得innerHTML屬性問題 https://forum.moztw.org/viewtopic.php?f=13&t=2646 |
第 1 頁 (共 1 頁) |
發表人: | kanashimi [ 2004-06-26, 20:41 ] |
文章主題 : | 有關IFRAME載入後無法從caller取得innerHTML屬性問題 |
不知道有沒有人注意到,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,就拜託了(一拜) |
發表人: | kanashimi [ 2004-06-29, 12:54 ] |
文章主題 : | 自解 |
意外的得到了回覆:Martin Honnen wrote: If you load a new document then certainly the browser has to create a new document object. 看起來是觀念上的不同,不過還不是不能理解就是。 |
發表人: | 訪客 [ 2004-06-29, 19:41 ] |
文章主題 : | |
雖然你說得頗詳盡, 但能做個minimized的testcase嗎? 否則很難找人幫你測試. |
發表人: | kanashimi [ 2004-06-29, 22:45 ] |
文章主題 : | |
Anonymous 寫: 能做個minimized的testcase嗎?
否則很難找人幫你測試. 感謝這位先進願意解決這個問題。 However,這個問題已經解決。列上解決後的部份程式碼: load contentWindow後: 代碼: if(typeof referenceDoc=='object'){ // referenceDoc is still contentWindow here referenceDoc=referenceDoc.document; o=referenceDoc.body;//alert(o.innerHTML.length+'\n'+o.innerHTML); .. load contentWindow前:這段會先執行 代碼: if(typeof o.contentWindow.document=='object'){ // 應該不能用o.contentWindow吧?怕o.contentWindow就算沒能載入文件,]會被定義
// Martin Honnen wrote: If you load a new document then certainly the browser has to create a new document object. referenceDoc=o.contentWindow;//.document; o.contentWindow.document still index to blank window here 這段程式碼已在 IE & Gecko 測試通過。 -- 順便一提,最近用firefox總覺得複製的功能怪怪的,不時「失手」.. |
發表人: | kanashimi [ 2005-11-28, 08:10 ] |
文章主題 : | |
這功能用Ajax重寫可能會比較好… |
第 1 頁 (共 1 頁) | 所有顯示的時間為 UTC + 8 小時 |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |