2012-12-19 21 views
5

Sto chiamando la funzione genitore come window.parent.functionname(); dalla pagina figlio. Come posso chiamare lo window.child.function() dalla pagina padre alla pagina figlio.Come posso chiamare una funzione figlio finestra in javascript?

Qualsiasi aiuto è apprezzato.

+0

Sono indovinando si sta parlando di chiamare una funzione all'interno di un iFrame all'interno del documento corrente. Se è così, per favore aggiungilo alla tua domanda. – Bruno

+0

No non ho alcun iframe – Jonathan

+0

se stai usando 'window.parent' e funziona, allora hai un iframe. – jbabey

risposta

11

Lascia la tua iFrame un id e cercare

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

Questo funziona anche quando si dispone di più iFrame nella stessa pagina a prescindere dal loro ordine.

+0

Ben fatto .. Ha funzionato anche per me. Grazie –

4

Hai un iframe?

fare qualcosa di simile:

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

Non ho alcun frame. Allora come posso fare quello – Jonathan

+0

@Naidu E dove o cosa è tuo figlio? Quando fai window.parent in quale contesto sei? Dammi più codice ?! – algorhythm

+0

Sto usando la barra dhtmlx per visualizzare il bambino. Codice: 'tabbar.setHrefMode ("iframe-on-demand"); tabbar.setContentHref ("a1", "../../ MailContactMain/Index"); 'quindi userò a1 come iframe – Jonathan

2

pagina padre

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

Bambino Pagina

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