2013-11-18 5 views
0

У меня есть следующие функции в iframe:Trigger функция внутри фрейма родителя

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
modalHeightTimer = setTimeout(window.parent.modalHgt, 50); 

Пусть родитель вызвать функцию в IFRAME:

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

Но это выглядит как функция вашего IFrame является анонимной готова функцией, так что если вы хотите, родитель назвать это у вас будет на самом деле объявить функцию внутри фрейма, как

function functionName() { //contents; } 

если вы хотите назвать это от родителей

+0

I г t ошибка: 'Ошибка: бесполезный вызов setTimeout (отсутствующие цитаты вокруг аргумента?)' – otinanai

+0

Я думаю, что я неправильно понял. Я думал, что вы хотите вызвать родительскую функцию внутри iframe. но я думаю, что на самом деле вы хотите вызвать функцию в iframe из родительского документа? – chiliNUT

+0

точно. это то, что мне нужно. Я попробовал ваше предложение, но я понял: 'contentWindow undefined' - и, как вы можете видеть в моем OP, я объявил функцию внутри iframe как функцию' function functionName() {// contents; } '. – otinanai

Смежные вопросы