У меня есть функция php, которая перезагружает одну страницу в скрытом iframe до того, как будет выполнено реальное перенаправление после нажатия кнопки ввода.
function button_confirm_order_params() {
$url = "somepagetoreloadinbackground.php";
$alert = "alert('you will be redirected to ext. page')";
return "onclick=\"document.all.myFrame.src='$url'; $alert;\"";
}
Все работает хорошо, однако я хотел бы использовать что-то более красивое, чем предупреждение браузера. Поэтому я скачал SweetAlert и изменил вернуть чтобы:
return "id=\"btnShowAlert\" onclick=\"document.all.myFrame.src='$url'; \"";
Проблема в том, что без alert () страница не останавливается перед перенаправлением. Он просто показывает Sweetalert на мгновение, а затем открывает другую страницу, поэтому мой «somepagetoreloadinbackground.php» не загружается. Есть идеи справиться с этим?
Если вы посмотрите примеры, приведенные на подслащивающем github, кажется, что на самом деле есть много вариантов, которые могут вам помочь: http://t4t5.github.io/sweetalert/
Существует стандартная версия тайм-аута: это атрибут таймера, который вы должны добавить.
swal({
title: "some title",
text: "some message",
timer: 2000, // timeout in miliseconds
showConfirmButton: false // show ok button or not
});
И также, хотя это подтверждение вместо предупреждения, есть функция обратного вызова! Просто добавьте перенаправление к этому обратному вызову, если версия тайм-аута не достаточно хороша:
swal({
// add all options you want
},
function(){
// the actual callback, triggered by clicking the ok button on the confirm.
document.all.myFrame.src='$url'
});
Всегда читайте документы для библиотеки, которую вы используете в первую очередь. 🙂
Других решений пока нет …