繁体   English   中英

如何使用即兴警报作为确认警报

[英]How to use Impromptu as an confirm alert

我想在重新加载页面时使用即兴警报框作为确认框。 现在,我正在使用这个普通的javascript。

window.onbeforeunload = function(event) {
    return confirm("Confirm refresh");
};

但是我不再想要使用此功能,因此是否有机会在页面重新加载时加载Impromptu确认框?

提前致谢

简短的回答:不。

长答案:Javascript不可能等待卸载之前(或之前)的回调。 如果事件返​​回,页面将被卸载。 考虑到这一点,自定义确认框将始终需要等待用户交互,并且不会阻塞。 因此Impromptu(或与此相关的任何其他插件)将无法阻止该页面的卸载。 本机函数(例如alert,confirm甚至XMLHttpRequest ...)有一个例外,这些例外是或可以阻止的,因此可以在pageunload上执行。

Mozilla文档告诉我们,现代浏览器甚至阻止在window.onbeforeunload创建对话框。 如果我在chrome中测试您的功能,则会创建一个对话框:

确认导航

您确定要离开此页面吗?

您可以做的最好的事情是:

window.onbeforeunload = function() {
    return "There is more to see on this site!";
};

这将创建一个类似以下的框:

确认导航

在这个网站上还有更多值得一看的地方!

您确定要离开此页面吗?

在页面重新加载上执行操作的唯一方法是在页面重新加载之后,即在新请求的页面上。

注意:我强烈不鼓励使用onbeforeunload事件,这会给您的用户带来麻烦,因为他们在关闭页面之前必须单击额外的弹出窗口。 当网站对我这样做时,我真的不喜欢它,就像垃圾邮件一样。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM