在iframe與父視窗或與子視窗傳遞資料是一個麻煩的事情,如果我們能夠寫一個一勞永逸的介面那就再方便不過了,下面就來簡答介紹一下如何實現此功能。原理就是將資料快取早window.top這個窗口,這樣無論子窗口父窗口的層次如何變化,資料總是存在不會變化的。
程式碼如下:
var share={ data:function(name,value){ var top=window.top, cache=top['_CACHE']||{}; top['_CACHE']=cache; return value?cache[name]=value:cache[name]; }, removeData:function(name){ var cache=window.top['_CACHE']; if(cache&&cache[name]) { delete cache[name]; } } }; share.data('mayi','http://www.jb51.net');
上面的程式碼實現了我們的要求,程式碼比較簡單,大家可以自行分析一下,如有任何問題可以跟帖留言。
大家知道JS中Iframe之間是怎麼傳值的嗎?下面跟大家簡單介紹一下。
1.在iframe子頁面中取得父頁的元素:
a>window.parent.document這個是取得父頁document中的物件;
b>如果要取得父頁js中的方法:window.parent.xxxx();xxxx()為方法;
2.在父頁中取得iframe子頁面中的元素:
a>
var child = document.getElementByIdx_x("mainFrame").contentWindow;//mainFrame這個id是父頁iframe的id
child.document;//取得子頁面中的document物件;