nicht sicher, ob dies überhaupt möglich ist, aber ich habe eine AJAX Form wie diese Geige:Klicken auf Zurück nach fancybox AJAX-Formular Submission
http://jsfiddle.net/nicorellius/GfeEf/
Auf meiner Website, es gut funktioniert. Ich mache eine einfache Validierung im Formular mit JavaScript, aber wenn der Benutzer durch das JavaScript kommt, wird der Benutzer mit einer Campaign Monitor Webseite konfrontiert: entweder sagen Yay oder Nein zu ihrer Validierung.
Wenn der Benutzer erfolgreich subskribiert wird, wenn der Benutzer zurückklickt oder den CM-Zurück-Link verwendet, bleibt die FancyBox mit Daten gefüllt. Basierend darauf, wie ich das Skript geschrieben habe, sollte es nach der Einreichung geschlossen werden.
Das ist Firefox Verhalten in Linux und Windows. Chrome löscht die Seite tatsächlich und entfernt das fancyBox-Formular. Der AJAX Abschnitt ist hier:
$.ajax({
type : "POST",
cache : false,
url : "http://<comapny_name>.createsend.com/a/b/c/abcdef/",
data : $(this).serializeArray(),
// I've tried both of these commented out pieces to no avail.
//beforeSend : function() {
//$.fancybox.close(true);
//},
//success : function(data) {
//$.fancybox.close(true);
//}
});
Also trotz Zugabe:
success : function() {
$.fancybox.close(true);
}
auf die AJAX-Skript, kann ich es nicht nach Vorlage zu schließen.
EDIT
Ich sollte auch beachten, dass dieses Phänomen mit Firefox, Safari und Opera auftreten scheint. Chrome verhält sich wie erwartet (z. B. wenn ich auf den Zurück-Link klicke, bekomme ich die neue Seite neu geladen). Die CM-Seite verwendet javascript:history.go(-1)
, um mich zurückzusenden.
Das Problem ist, wenn ich auf den CM-Link (die 'javascript: history.go (-1)') verwendet, um die Seite nicht neu zu laden, da ich ein FancyBox AJAX-Popup verwenden. Es scheint in dem Zustand zu existieren, in dem ich es verlassen habe. Und da ich eine HTML-Seite für den Inhalt verwende, schließt das Hinzufügen der close-Funktion die fancyBox, bevor sie geöffnet werden kann. – nicorellius
history.go (-1) sollte auch die Seite neu laden. Können Sie versuchen, einen "vollständigen" Rückruf durchzuführen, anstatt erfolgreich zu sein? Oder anstatt innerhalb Ihres .ajax Anrufs, könnten Sie direkt nach Ihrem .ajax Anruf close aufrufen. Ich nehme an, es würde Ihren Ajax-Anruf mit fancybox geschlossen –