2011-10-04 6 views
2

J'ai une application où j'utilise Fancyboxes pour afficher le contenu du serveur via IFRAMES dans les Fancyboxes. Donc, je cherche à exécuter un script après que les données ont été soumises ou modifiées sur le serveur qui appelle la fancybox actuelle avec IFRAME pour fermer et ouvrir une autre fancybox avec une nouvelle URL, taille et iframe à l'intérieur.fermer fancybox et ouvrir un nouveau en utilisant les fonctions

J'ai essayé plusieurs codes différents à travers différents sites googled, mais aucun n'a fonctionné pour mon application.

Une aide serait grandement appréciée!

MISE À JOUR: trouvé la réponse ici: http://www.amitpatil.me/fancybox-runtime-resizing-of-iframe/

Répondre

1

Appel $.fancybox.close ou parent.$.fancybox.close() (de iframe), et ouvrir une nouvelle:

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

ou simplement redimensionner fancybox: .fancybox.resize $(). Cela vous aidera à redimensionner: How do you resize Fancybox at runtime?

[UPDATE]

Comme je comprends: Vous avez A.php ouvert avec fancybox. Sur A.php vous avez probablement un formulaire, et le formulaire est soumis à B.php. Si c'est le cas, vous devez fermer + ouvrir OU simplement redimensionner la fancybox dans le document.ready de B.php par le parent. $ .fancybox.function_name.

+0

merci pour les réponses rapides. Je cherchais un redimensionnement au début, je ne sais pas pourquoi je ne suis pas tombé sur ce lien. – drummer392

+0

Content de vous aider! Si la réponse vous a aidé à résoudre le problème, pensez à accepter la réponse. –

+0

désolé, mais juste pour obtenir ce droit, après mes actions PHP sont appelés et tout est envoyé à la base de données, je viens d'appeler parent. $. Fancybox.close() pour fermer la fancybox, puis je place l'autre code dans le page parent et il va automatiquement ouvrir une nouvelle fancybox? – drummer392

0

Je ne sais pas si vous avez essayé, mais semble fonctionner pour moi:

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

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

La méthode proposée par @TamasPap ne fonctionnait pas pour moi, et comme j'avais passé des heures à faire des recherches et à expérimenter jusqu'à ce que je trouve enfin une méthode qui marchait, je voulais la partager.

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

Vous pouvez spécifier toutes les options, les aides ou après le type css: « iframe » de la même manière que vous le feriez lors de la création de la fonction.

Questions connexes