MozTW 討論區

各項 Mozilla 相關軟體與技術討論
現在的時間是 2025-08-06, 07:26

所有顯示的時間為 UTC + 8 小時





發表新文章 回覆主題  [ 5 篇文章 ] 
發表人 內容
文章發表於 : 2004-06-26, 20:41 
不知道有沒有人注意到,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,就拜託了(一拜)


回頂端
  
引用回覆  
 文章主題 : 自解
文章發表於 : 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嗎?
否則很難找人幫你測試.


回頂端
  
引用回覆  
 文章主題 :
文章發表於 : 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總覺得複製的功能怪怪的,不時「失手」..


回頂端
  
引用回覆  
 文章主題 :
文章發表於 : 2005-11-28, 08:10 
這功能用Ajax重寫可能會比較好…


回頂端
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8) Gecko/20051111 Firefox/1.5
  
引用回覆  
顯示文章 :  排序  
發表新文章 回覆主題  [ 5 篇文章 ] 

所有顯示的時間為 UTC + 8 小時


誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 5 位訪客


不能 在這個版面發表主題
不能 在這個版面回覆主題
不能 在這個版面編輯您的文章
不能 在這個版面刪除您的文章
不能 在這個版面上傳附加檔案

搜尋:
前往 :  
Powered by phpBB® Forum Software © phpBB Group
正體中文語系由 竹貓星球 維護製作
© moztw.org, Mozilla Foundation
MozTW,Mozilla 台灣社群