2012-12-19 1 views
5

자식 페이지에서 부모 함수를 window.parent.functionname();과 같이 호출합니다. 부모 페이지에서 하위 페이지로 window.child.function()을 어떻게 호출 할 수 있습니까?어떻게 자바 스크립트에서 윈도우 하위 함수를 호출 할 수 있습니까?

도움을 주시면 감사하겠습니다.

+0

하위 페이지. 그렇다면 질문에 추가하십시오. – Bruno

+0

아니요. window.parent를 사용하고 있다면 iframe이 전혀 없습니다. – Jonathan

+0

iframe이 있습니다. – jbabey

답변

11

당신의 iframe이에게 ID를주고 당신이 상관없이 순서의 같은 페이지에 여러 iframe이 경우에도 작동

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

보십시오.

+0

멋지게 완료되었습니다. 나를 위해 일했습니다. 감사 –

4

iframe이 있습니까? 그런

어떻게 좀 :

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

프레임이 없습니다. 그러면 어떻게 할 수 있습니까? – Jonathan

+0

@Naidu 그리고 당신의 자녀는 어디에 있습니까? 문맥이 당신 인 window.parent를 만들 때? 더 많은 코드를 줘?! – algorhythm

+0

dhtmlx tabbar를 사용하여 자식을 표시하고 있습니다. code :'tabbar.setHrefMode ("iframe-on-demand"); 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(); 
}​ 

난 당신이 현재 문서 내에서 iframe 내에 함수를 호출에 대해 얘기 추측하고

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); 
    }; 
}