Nie jestem pewien, czy jest to w ogóle możliwe, ale mam formularza AJAX jak ta ryba:Kliknięcie Powrót po fancybox AJAX Form Składanie
http://jsfiddle.net/nicorellius/GfeEf/
na mojej stronie internetowej, że działa poprawnie. Robię proste sprawdzanie poprawności w formie za pomocą JavaScript, ale jeśli użytkownik przejdzie przez JavaScript, użytkownik jest prezentowany na stronie internetowej Campaign Monitor: albo mówiąc yay, albo nie na ich walidacji.
Po pomyślnym zasubskrybowaniu przez użytkownika, jeśli użytkownik kliknie wstecz lub użyje odsyłacza wstecznego CM, pole "Niechcący" pozostanie wypełnione danymi. Na podstawie tego, jak napisałem scenariusz, powinien on zostać zamknięty po przesłaniu.
To zachowanie Firefoksa w systemach Linux i Windows. Chrome faktycznie czyści stronę i usuwa formularz fancyBox. Sekcja AJAX jest tutaj:
$.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);
//}
});
Więc mimo dodając:
success : function() {
$.fancybox.close(true);
}
do skryptu AJAX, nie mogę zmusić go do zamknięcia po przedstawieniu.
EDIT
Należy zauważyć również, że zjawisko to wydaje się występować z Firefox, Safari i Opera. Chrome zachowuje się tak, jak oczekiwałbym (np. Po kliknięciu linku wstecznego otrzymuję ponowne załadowanie nowej strony). Strona CM używa javascript:history.go(-1)
do odesłania mnie.
Problem polega na tym, że klikam łącze CM (które używa 'javascript: history.go (-1)'), aby wrócić, strona nie przeładowuje się ponownie, ponieważ używam wyskakującego okna AJAX fancyBox. Wygląda na to, że istnieje w tym samym stanie, w jakim go zostawiłem. A ponieważ używam strony HTML dla zawartości, dodanie do niej zamykającej funkcji zamyka fancyBox, zanim będzie można go otworzyć. – nicorellius
history.go (-1) również powinien przeładować stronę. Czy możesz spróbować dołączyć do "kompletnego" połączenia zwrotnego, a nie sukcesu. Lub zamiast wewnątrz połączenia .ajax, możesz wywołać .close zaraz po wywołaniu .ajax. Przypuszczam, że wywołałoby to twoje połączenie ajax z fancybox closed –