1. 程式人生 > >子窗口訪問父頁面iframe中的iframe,top打開的子窗口訪問父頁面中的iframe中的iframe

子窗口訪問父頁面iframe中的iframe,top打開的子窗口訪問父頁面中的iframe中的iframe

frame 技術分享 收藏 主頁 art cond pos shu log

子窗口訪問父頁面iframe中的iframe

子窗口訪問最頂層頁面中的iframe中的iframe

top打開的子窗口訪問父頁面中的iframe中的iframe

top打開的子窗口訪問最頂層頁面中的iframe中的iframe

================================

蕃薯耀 2018年2月5日

http://www.cnblogs.com/fanshuyao/

頁面情況說明:

頁面使用jquery eayui架構,主頁是一個普通頁面(main頁面),然後打開一個tab標簽頁面(first_iframe頁面),tab標簽頁面中有一個iframe頁面(second_iframe頁面)。

在second_iframe頁面打開一個選擇的子窗口(使用top.$("#xxx_id").window("open")打開一個iframe窗口),那麽當在子窗口選擇完數據後,如何將數據返回到原來的打開窗口中呢?

如果不使用top,則直接使用window.parent應該就可以調用父頁面的方法。

由於使用的是top.$("#xxx_id")打開的,已經進入到最外層的頁面窗口,需要回去原來的second_iframe頁面,則需要一層一層進去,方法如下:

Js代碼 技術分享圖片
  1. //獲取第一層iframe對象
  2. var first_iframe = $(window.parent.document).find("#firstIframeId");
  3. //獲取第二層iframe(第一層iframe中的又一個iframe)
  4. var second_iframe = $(first_iframe).contents().find("#secondIframeId");
  5. //在第二層iframe中,調用iframe中的方法,方法可帶參數param或者不帶參數。
  6. //$(second_iframe)[0]後面為什麽會有一個[0]呢,我暫時不清楚,但這樣是對的。去掉[0]會提示出錯。
  7. //callSecondIframeMethod為second_iframe頁面中的方法名
  8. $(second_iframe)[0].contentWindow.callSecondIframeMethod(param);
  9. //在第二層iframe中,給iframe中的元素賦值。
  10. $(second_iframe).contents().find("#secondIframeElementId").val(elementValue);

================================

蕃薯耀 2018年2月5日

http://www.cnblogs.com/fanshuyao/

子窗口訪問父頁面iframe中的iframe,top打開的子窗口訪問父頁面中的iframe中的iframe