Hey! Ich habe Probleme mit meinen Fancyboxen!
Ich starte ein Formular in einer Fancybox. Normalerweise wird es von fancybox in einem iframe-Modus geöffnet (da es als Widget aus anderen Domänen gestartet wird) . Innerhalb dieses Iframes öffne ich eine zweite Fancybox, um Validierungsfehler anzuzeigen. All das - funktioniert gut.
Aber Wenn ein Benutzer die URL zum Formular öffnet, muss das Formular in einer Fancybox angezeigt werden, die das Formular mit type: inline aufruft. Das ist der Fall, wenn die zweite Fancybox nicht über die Eltern-Fancybox hinausfliegt, sondern sie ersetzt - und mein Formular verschwindet.
Also ... Wie starte ich mehrere Instanzen von fancybox?
Die schlechte Nachricht ist, dass fancybox ein Single-Instance-Skript ist. Beim Laden der Seite werden alle Overlay-DIVs erstellt. Alle Links und andere Elemente, die an fancybox gebunden sind, werden diese Overlays einfach wiederverwenden. Wenn fancybox mehrere Instanzen behandeln würde, wäre ein mehr oder weniger großes Überschreiben des Skripts erforderlich.
Aus Gründen der Benutzerfreundlichkeit und des Designs sollten Sie dies niemals versuchen, da dies eine sichere Art ist, eine schreckliche Benutzererfahrung zu erzeugen. Aus diesem Grund unterstützen die meisten modalen Box-Frameworks das nicht.
Im Allgemeinen, wenn Sie in Dinge laufen, die nicht unterstützt werden, sei es durch den Browser oder durch eine bekannte Bibliothek, hören Sie auf und überlegen Sie, ob es einen Grund für die fehlende Unterstützung gibt, und meistens werden Sie feststellen dass die fehlende Unterstützung von Entwurf ist.
Sie können dies erreichen, wenn Sie die erste fancybox mit iframe öffnen:
%Vor%Tags und Links javascript jquery fancybox