如何使用Impromptu作为确认警报

时间:2016-04-05 10:08:43

标签: javascript jquery impromptu

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

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

但是我不想再使用它了,那么有没有机会在页面重新加载时加载Impromptu确认框?

提前致谢

1 个答案:

答案 0 :(得分:0)

简答:不。

答案很长: Javascript无法在卸载时(或之前)等待回调。如果事件返​​回,页面将卸载。考虑到这一点,自定义确认框将始终需要等待用户交互,这可能无法阻止。因此Impromptu(或任何其他插件)将无法阻止页面卸载。本机函数有一种异常(例如alert,confirm甚至XMLHttpRequest ......),这些异常或者可以阻塞,因此它们可以在pageunload上执行。

The Mozilla docs告诉我们,现代浏览器甚至会阻止在window.onbeforeunload中创建对话框。如果我在chrome中测试你的函数,它会创建一个对话框:

  

确认导航

     

     

您确定要离开此页吗?

你能做的最好的事情就是:

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

这将创建一个像:

这样的框
  

确认导航

     

在这个网站上还有更多内容可以看到!

     

您确定要离开此页吗?

在页面重新加载后,您可以执行某些操作的唯一方法是重新加载页面,因此在新请求的页面上。

注意:我强烈反对使用onbeforeunload事件,这会让您的用户在关闭页面之前需要点击一个额外的弹出窗口。当网站对我这样做时,我真的不喜欢它,感觉就像是垃圾邮件。