Sweetalert: SwAl 不会在返回导航中消失

创建于 2014-12-11  ·  5评论  ·  资料来源: t4t5/sweetalert

在运行在cordova s​​hell 中的Jquery Mobile 应用程序中使用SwAl。 它工作得很好,但对于一个小问题。
SwAl 已启动,用户按下其 Android 应用程序上的后退按钮。 后台中的所有内容都后退了一步,但没有SwAl-SwAl停留在那儿是出于某种原因,我无法弄清楚。

当用户导航回他的手机时,如何让 SwAl 消失?

所有5条评论

我在这里猜测。 如果您向我们展示一些代码,我可能会了解更多。

要隐藏 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");

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

vmitchell85 picture vmitchell85  ·  6评论

mouro001 picture mouro001  ·  3评论

waldyrious picture waldyrious  ·  5评论

yrshaikh picture yrshaikh  ·  4评论

VoxelNaut picture VoxelNaut  ·  6评论