在运行在cordova shell 中的Jquery Mobile 应用程序中使用SwAl。 它工作得很好,但对于一个小问题。
SwAl 已启动,用户按下其 Android 应用程序上的后退按钮。 后台中的所有内容都后退了一步,但没有SwAl-SwAl停留在那儿是出于某种原因,我无法弄清楚。
当用户导航回他的手机时,如何让 SwAl 消失?
我在这里猜测。 如果您向我们展示一些代码,我可能会了解更多。
要隐藏 sweetAlert,页面需要刷新。 在 Cordova 或 JQuery 中,当您按下返回时,页面不会刷新,它只是更改状态,因此尝试使用 phonegap 将事件处理程序放在后退按钮/页面更改上并隐藏甜蜜警报。
我找到了解决方法。 也必须对swal库进行少量修改。
在我的代码中,我正在检查后退导航以及 swal 是否打开。
如果是这样,我只是关闭它并阻止默认导航。
$(document).on("pagebeforechange", function(e, ob) { //防止返回导航
if(ob.options.direction=="back" && swal.isOpen()){
swal.cancelAlert(); //关闭swal
e.preventDefault(); //防止导航
history.go(1); //避免哈希改变
//返回false;
}
})
// 关闭/取消任何打开的甜蜜警报
window.swal.cancelAlert = function() {
关闭模态();
};
//检查SWAL是否打开。
window.swal.isOpen = function() {
var modal=getModal();
if(hasClass(modal,“ showSweetAlert”)){
返回真;
}else if(hasClass(modal,"hideSweetAlert")){
返回假;
}别的{
返回false;
}
};
你可以在这里查看参考代码——https: //github.com/t4t5/sweetalert/pull/236
正如拉取请求所说,只需使用swal.close()
只需使用此脚本,它对我有用:
header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT");