Non sono sicuro se questo è ancora possibile, ma ho un modulo AJAX come questo violino:Facendo clic su Indietro dopo Fancybox AJAX formulario di presentazione
http://jsfiddle.net/nicorellius/GfeEf/
Sul mio sito, si sta lavorando bene. Faccio una semplice convalida nel modulo con JavaScript, ma se l'utente passa attraverso il JavaScript, l'utente viene presentato con una pagina web Campaign Monitor: o dicendo yay o no alla loro convalida.
Quando l'utente si iscrive correttamente, se l'utente fa clic indietro o utilizza il collegamento back CM, la fancyBox rimane con i dati popolati. Sulla base di come ho scritto lo script, dovrebbe chiudersi dopo l'invio.
Questo è il comportamento di Firefox in Linux e Windows. Chrome cancella effettivamente la pagina e rimuove il modulo fancyBox. La sezione AJAX è qui:
$.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);
//}
});
Così, nonostante l'aggiunta di:
success : function() {
$.fancybox.close(true);
}
allo script AJAX, io non riesco a farlo per chiudere dopo la presentazione.
EDIT
Vorrei sottolineare, inoltre, che questo fenomeno sembra verificarsi con Firefox, Safari e Opera. Chrome si comporta come mi aspetterei (ad esempio, quando si fa clic sul collegamento posteriore, ottengo il nuovo caricamento della pagina). La pagina CM utilizza javascript:history.go(-1)
per rimandarmi indietro.
Il problema è quando faccio clic sul collegamento CM (che utilizza 'javascript: history.go (-1)') per tornare indietro, la pagina non viene ricaricata, perché sto usando un popup AJAX fancyBox. Sembra esistere nello stesso stato di quando l'ho lasciato. E dal momento che sto usando una pagina HTML per il contenuto, aggiungendo la funzione close a quella che chiude la fancyBox prima che possa aprirsi. – nicorellius
history.go (-1) dovrebbe anche ricaricare la pagina. Puoi provare ad allegare al callback 'completo' piuttosto che al successo. O invece che all'interno della chiamata .ajax, è possibile chiamare .close subito dopo la chiamata .ajax. Presumo che lancerà la tua chiamata ajax con fancybox chiusa –