закройте fancybox и откройте новый, используя функции - PullRequest
2 голосов
/ 04 октября 2011

У меня есть приложение, в котором я использую Fancyboxes для отображения контента с сервера через IFRAMES в Fancyboxes. Итак, я хочу запустить скрипт после того, как данные отправлены или изменены на сервере, который вызывает текущий fancybox с помощью IFRAME, чтобы закрыть и открыть другой fancybox с новым URL-адресом, размером и внутренним фреймом.

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

Помощь будет принята с благодарностью!

ОБНОВЛЕНИЕ: нашел ответ здесь: http://www.amitpatil.me/fancybox-runtime-resizing-of-iframe/

Ответы [ 3 ]

1 голос
/ 04 октября 2011

Позвоните $.fancybox.close или parent.$.fancybox.close() (из iframe) и откройте новый:

$.fancybox({            
'transitionIn'  : 'none',
'transitionOut' : 'none',
'width'     : 680,
'height'        : 495,
'href'      : 'http://example.com/new'
});

или просто измените размер fancybox: $ .fancybox.resize ().Это поможет вам в изменении размера: Как вы изменяете размер Fancybox во время выполнения?

[ОБНОВЛЕНИЕ]

Как я понимаю: A.php открыт с fancybox.На A.php у вас, вероятно, есть форма, и форма отправляется на B.php.В этом случае вам нужно закрыть + открыть ИЛИ просто изменить размер fancybox в document.ready из B.php по родительскому элементу. $. Fancybox.function_name.

0 голосов
/ 15 декабря 2012

Метод, предложенный @TamasPap, не работал для меня, и, поскольку я потратил часы на исследования и эксперименты, пока, наконец, не нашел работающий метод, я хотел поделиться им.

parent.$.fancybox.open({ href : 'iframe2.html', type: 'iframe'});
parent.$.fancybox.close({ href : 'iframe1.html'});

Вы можете указать любые опции, помощники или css после типа: 'iframe' так же, как при создании функции.

0 голосов
/ 04 октября 2011

Не знаю, пытались ли вы это сделать, но мне кажется, что это работает:

parent.MyFunction(); // call this from the iframed url

function MyFunction(){ // have this in your parent page
    // call your fancybox close function here
} 
...