iframe 間傳遞資料

2021-07-07 02:31:27 字數 828 閱讀 3757

以前在做專案時會遇到iframe的巢狀。

同網域名稱下的互動是很簡單的:

父級方法獲取iframe:

var a=document.queryselector('#iframe1');

//獲取子的window

var w=a.contentwindow || w.contentdocument;

w就是子級的window

w.name w.fn w.document等都可用

子級獲取父級:

用parent 。parent就是父級的window

parent.fn parent.xx  parent.document

這是最裝簡單的。

但有時會遇到巢狀的頁面不是我們網域名稱下的。這時要互動就麻煩些了。

就無法用parent來獲取父級了。

這時就需要在子頁面中巢狀乙個父級網域名稱下的頁面用來實現橋接。

如a 巢狀 了b ,b巢狀了c.

a 和c同網域名稱,b其他網域名稱。

先說a 傳遞到b b 傳遞到c 

a頁面裡通過給b的src新增# 或?引數。

b監聽onhashchange來獲取url變化 得到傳遞的值。

這樣a 就可能把資料傳遞到b,

b也需要用同樣的方法把資料傳遞到c.

現在a可以傳遞資料到b了。

下面實現b傳遞資料到a

先傳遞到c橋接頁面。

c和a是同源的,

c可以用window.parent.parent 或window.top來訪問a.

呼叫a方法傳遞引數。

這樣就ok了。

主要就是通過url傳遞資料,和top頂級的用法。

Activity間傳遞資料

1.從當前的activity傳遞資料到下乙個activity 1 傳送方 當前的activity bundle bundle new bundle bundle.putstring name haoye bundle.putint id 10 intent intent new intent int...

WinForm 窗體間傳遞資料

子窗體.cs方法一 在子窗體中自定義乙個建構函式,引數型別是主窗體,當要顯示子窗體的時候,就用這個建構函式來例項化子窗體,然後把this指標傳進去。如下 主窗體.cs public class frmmain form 子窗體.cspublic class frmcontrol form 子窗體,用...

Zigbee任務間傳遞資料

1.定義任務間傳遞資料的結構體 typedef struct temp collect task msg typedef struct voltage scan task msg typedef struct remote ctl temp task msg typedef struct light...