2012-12-19 41 views
5

我正在調用子頁面中的父功能,如window.parent.functionname();。我怎樣才能從父頁面調用window.child.function()到子頁面。如何在JavaScript中調用窗口子功能?

任何幫助表示讚賞。

+0

我猜你是在談論在當前文檔中的iFrame內調用函數。如果是這樣,請將其添加到您的問題中。 – Bruno

+0

不,我沒有任何iframe – Jonathan

+0

,如果你使用'window.parent'並且它正在工作,那麼你有一個iframe。 – jbabey

回答

11

給您的iFrame ID和嘗試

document.getElementById("iFrameId").contentWindow.functionname() 

當你在同一個頁面上有多個iframe不論他們所訂購的也可使用。

+0

很好的工作..也爲我工作。謝謝 –

4

你有一個iframe嗎?

做這樣的事情:

window.frames[0].contentDocument.functionname(); 
+0

我沒有任何框架。那我該怎麼做 – Jonathan

+0

@Naidu你的孩子在哪裏?當你在哪個環境下製作window.parent?給我更多的代碼? – algorhythm

+0

我正在使用dhtmlx tabbar來顯示孩子。代碼:'tabbar.setHrefMode(「I幀按需」); tabbar.setContentHref(「a1」,「../../ MailContactMain/Index」);'然後我會使用a1作爲iframe – Jonathan

2

父頁面

var windowRef = null; 

function openChildWindow() { 
    if ((windowRef != null) && (windowRef.closed == false)) { 
     if (windowRef.closed == false) windowRef.close(); 
     windowRef = null; 
    } 

    var windowUrl = 'ChildPage.aspx'; 
    var windowId = 'NewWindow_' + new Date().getTime(); 
    var windowFeatures = 'channelmode=no,directories=no,fullscreen=no,' + 'location=no,dependent=yes,menubar=no,resizable=no,scrollbars=yes,' + 'status=no,toolbar=no,titlebar=no,' + 'left=0,top=0,width=400px,height=200px'; 

    windowRef = window.open(windowUrl, windowId, windowFeatures); 

    windowRef.focus(); 

    // Need to call on a delay to allow 
    // the child window to fully load... 
    window.setTimeout(callChildWindowFunction(), 1000); 
} 

function callChildWindowFunction() { 
    if ((windowRef != null) && (windowRef.closed == false)) windowRef.childWindowFunction(); 
}​ 

子頁面

function childWindowFunction() { 
    alert('Hello from childWindowFunction()'); 
}​ 
1
var win = null; 
function openAndCall(id){ 
    if (win!=null && win.closed==false){ 
     win.close(); 
    } 
    win = window.open("/somePage"); 
    win.onload = function(){ 
     win.callSome(id); 
    }; 
} 
相關問題