如何在javascript中调用窗口子函数?

时间:2012-12-19 13:20:03

标签: javascript frames

我从子页面调用父window.parent.functionname();这样的父函数。如何从父页面调用window.child.function()到子页面。

感谢任何帮助。

4 个答案:

答案 0 :(得分:12)

将您的iFrame设为ID并尝试

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

即使您在同一页面中有多个iFrame而不管其顺序如何,此功能仍然有效。

答案 1 :(得分:4)

你有iframe吗?

做类似的事情:

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

答案 2 :(得分: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()');
}​

答案 3 :(得分: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);
    };
}