使用iframe的時候,可能會涉及到父子窗口之間傳值和方法的相互調用,之前一直有些迷糊,也沒有著意去弄清楚,這兩天要干活,沒法子了只好把這都弄明白了。其實非常簡單,就那麼幾個用法,幾句代碼而已。
子窗口中調用父窗口的js方法:
復制代碼 代碼如下:
parent.changeBtnTitle('tzgg');
一個父窗口中可能會有若干個功能行為類似的子窗口,子窗口中的組件要調用相同或者類似的對象或者方法,那麼就把這樣的方法寫在父窗口中,通過傳遞參數來達到不同的效果。
父窗口獲得子窗口中的某個對象:
首先要獲得子窗口的iframe對象,比如:
復制代碼 代碼如下:
var frameName = window.frames["frameId"]
然後要獲得該子窗口的document值,然後就可以調用子窗口中的對象了。在父窗口中使用時為避免反復書寫,不妨寫成一個方法:
復制代碼 代碼如下:
getSubWindowObj = function(moduleName){
return window.frames["iframe"+moduleName].document.getElementById("moreorless"+moduleName);
}
這裡只用了一個參數,只因為我的iframeId和子窗口的對象Id名字起的有規律,只需傳入一個參數拼接之後就可以餓了。
同樣,子頁面調用父頁面的元素,可以使用如下代碼:
復制代碼 代碼如下:
parent.window.document.getElementById('parentMenu');
//簡寫
parent.document.getElementById('parentMenu');