fancybox - передача переменной обратно родителю, когда окно fancybox закрыто - PullRequest
7 голосов
/ 04 января 2011

Привет, мне было интересно, можно ли передать переменную из fancybox child в parent после закрытия child?

Любая информация очень ценится.

С уважением,

Фил

РЕДАКТИРОВАТЬ **

function cleanUp(){
    var bla = $("#fancybox-frame").contents().find('input[name=pd_id]');
    alert(bla.val());
}
$("#tree .product a[class!=copy]").fancybox({
    'width'             : 770,
    'height'            : '95%',
    'autoScale'         : false,
    'transitionIn'      : 'none',
    'transitionOut'     : 'none',
    'type'              : 'iframe',
    'onCleanup'         : cleanUp
}); 

Ответы [ 2 ]

5 голосов
/ 08 июля 2011

В родителе я определяю

var $_returnvalue = false;

И onClosed выглядит так:

onClosed: function() {
    if ($_returnvalue != false)
    {
        // Do something in the parent
    }

А на странице fancybox, когда что-то готово к возвращению, я задаюзначение parent. $ _ returnvalue и затем закройте окно.Это хорошо подходит для выбора чего-либо из списка и передачи этого значения обратно на страницу вызова.

2 голосов
/ 04 января 2011

Вы можете увидеть в fancybox api : onClosed... Will be called once FancyBox is closed

$('.overlay').fancybox({
    onClosed: function() { 
        var bla = $('#targetFrame')[0].contentWindow.targetFunction(); 
    }
});

Нет дочернего окна / iframe, поле просто является абсолютно позиционированным div. Он находится в том же DOM, что и страница.

...