Использование функции Jquery Fancybox resize() в Iframe?

Я новичок в JQuery и использую Fancybox (тип: iframe) в своем PHP-приложении.

Внутри iframe есть форма, после того как пользователь заполнил и отправил форму, Fancybox должен изменить размер, чтобы вместить данные, которые будут переданы обратно после обработки данных формы.

И я также хотел бы, чтобы главная страница сайта обновлялась, когда пользователь закрывает предупреждение Fancybox.

Как это может быть сделано?

Спасибо


person Stanley Ngumo    schedule 13.09.2010    source источник


Ответы (1)


Мне просто пришлось столкнуться с тем же вопросом, и я решил его, создав несколько вспомогательных функций для FancyBox. Функция fb_resize(w,h) изменяет размер блока div fancybox-content, а затем вызывает $.fancybox.resize() для корректировки измененного содержимого. Функции fb_close_any() и fb_resize_any(w,h) можно вызывать из любого содержимого, включая iFrame, для закрытия или изменения размера fancybox.

function fb_resize(w, h) {
  if (w > 0 || h > 0) {
    if (w > 0) $('#fancybox-content').css({ width: w+"px"});
    if (h > 0) $('#fancybox-content').css({ height: h+"px"});
    $.fancybox.resize();
  }
}

function fb_close_any() {
  window.top.eval('$.fancybox.close()');
}

function fb_resize_any(w, h) {
  w = (w > 0) ? w : 0;
  h = (h > 0) ? h : 0;
  window.top.eval('fb_resize('+w+','+h+')');
}
person Scott Lahteine    schedule 08.01.2011