触发从iframe到父级的功能

时间:2013-11-18 01:46:20

标签: javascript jquery iframe resize

我在iframe中有以下功能:

function modalHgt() {
    windowHeight = $(window.parent).height();
    complementHeight = $('#complement').outerHeight(true)+20;
    popupHeight = $('#main').outerHeight(true);
    if ((popupHeight) > (windowHeight-complementHeight)){
        popupHeight = windowHeight-complementHeight;
    } else {
        popupHeight = $('#main').outerHeight(true)+15;
    }
    $("#sbox-window", top.document).height(popupHeight);
}

我需要在调整大小时调用父中的相同功能。我尝试了以下但是它不起作用:

$(function() {
    var modalHeightTimer;
    $(window).resize(function() {
        clearTimeout(modalHeightTimer);
        modalHeightTimer = setTimeout($.modalHgt, 50);
    });
});

您能否建议我如何在父母中调用iframe函数?

1 个答案:

答案 0 :(得分:1)

modalHeightTimer = setTimeout(window.parent.modalHgt, 50);

让父母调用iframe中的函数:

$('#theIFrame')[0].contentWindow.functionName();

但看起来你的iframe函数是一个匿名就绪函数,所以如果你想让父进程调用它,你必须在iframe中实际声明一个函数,比如

function functionName() { //contents; }

如果你想从父母那里调用它