Sweetalert: SwAl verschwindet nicht in der Rückwärtsnavigation

Erstellt am 11. Dez. 2014  ·  5Kommentare  ·  Quelle: t4t5/sweetalert

Verwenden von SwAl in einer Jquery Mobile-App, die in einer Cordova-Shell ausgeführt wird. Es funktioniert einfach großartig, aber für ein kleines Problem.
SwAl ist oben und der Benutzer drückt die Zurück-Taste seiner Android-App. Alles im Hintergrund geht einen Schritt zurück, aber kein SwAl - SwAl bleibt einfach da aus irgendeinem Grund, den ich nicht herausfinden kann.

Wie kann ich SwAl verschwinden lassen, wenn ein Benutzer auf seinem Telefon zurück navigiert?

bug

Alle 5 Kommentare

Ich vermute hier. Wenn Sie uns etwas Code zeigen, kann ich vielleicht mehr helfen.

Damit sweetAlert ausgeblendet wird, muss die Seite aktualisiert werden. In einem Cordova oder JQuery wird die Seite beim Drücken von Zurück nicht aktualisiert, sondern ändert nur den Status.

Ich habe einen Workaround dafür gefunden. musste auch einige Änderungen an der Swal-Bibliothek vornehmen.
In meinem Code überprüfe ich die Rückwärtsnavigation und auch, ob der Swal geöffnet ist oder nicht.
Wenn ja, schließe ich es einfach und verhindere auch die Standardnavigation.

$(document).on("pagebeforechange", function(e, ob) { //um die Rückwärtsnavigation zu verhindern
if(ob.options.direction=="zurück" && swal.isOpen()){
swal.cancelAlert(); // schließe die swal
e.preventDefault (); // Zurück-Navigation verhindern
geschichte.go(1); // Hash-Änderung vermeiden
// falsch zurückgeben;
}
})

// Schließt/Storniert alle offenen Sweet Alerts

window.swal.cancelAlert = function() {
closeModal ();
};

//Überprüfen, ob die SWAL geöffnet ist oder nicht.

window.swal.isOpen = function () {
var modal= getModal();
if(hasClass(modal,"showSweetAlert")){
true zurückgeben;
} else if (hasClass (modal, "hideSweetAlert")) {
falsch zurückgeben;
}sonst{
falsch zurückgeben;
}
};

Sie können den Referenzcode hier überprüfen -- https://github.com/t4t5/sweetalert/pull/236

Wie die Pull-Anfrage sagt, verwenden Sie einfach swal.close()

Verwenden Sie einfach dieses Skript, es funktioniert für mich:

Header ("Cache-Kontrolle: kein Speicher, kein Cache, muss erneut validiert werden, maximales Alter = 0");
header("Läuft ab: Sa, 26. Juli 1997 05:00:00 GMT");

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen