wnd.showDatas(datas);
以上代碼中,showDatas是定義在子窗口的函數(shù),datas是父窗口要給子窗口的數(shù)據(jù)。
需要注意的事,使用open語(yǔ)句打開(kāi)窗口后,窗口未必能把所有代碼全部載入,因此showDatas函數(shù)未必調(diào)用有效。
如果要有效,可以先把數(shù)據(jù)傳遞給子窗口,再在子窗口中延時(shí)調(diào)用showDatas函數(shù)。
如此,父窗口中的代碼如下:
var wnd = window.open("XXX.html");
wnd.datas=datas;// 傳遞數(shù)據(jù)給子窗口
子窗口中的代碼如下:
setTimeout(showDatas(window.datas),1000);// 延時(shí)時(shí)間可進(jìn)行調(diào)整。
如上,父窗口調(diào)用子窗口函數(shù)才算完美。
反過(guò)來(lái),子窗口要調(diào)用父窗口的函數(shù)要用opener對(duì)象,如:
opener.showMessages(msgs);
以上代碼中,showMessages是定義在父窗口的函數(shù),msgs是子窗口要給父窗口的數(shù)據(jù)。
2012年5月9日增補(bǔ):
父窗口未必需要傳數(shù)據(jù)給子窗口,而是子窗口需要操作父窗口的某些區(qū)域如div時(shí),可以在父窗口打開(kāi)子窗口的函數(shù)前將這個(gè)div的id找個(gè)地方(隱藏區(qū)域)存起來(lái),當(dāng)然這個(gè)地方不需要顯示,當(dāng)子窗口需要操作這個(gè)div時(shí),直接調(diào)用父窗口的js函數(shù)即可,這個(gè)函數(shù)可以先從隱藏區(qū)域中得到div的id,再根據(jù)這個(gè)id操作div。