我想在重新加载页面时使用Impromptu警告框作为确认框。 现在我正在使用这个普通的javascript。
window.onbeforeunload = function(event) {
return confirm("Confirm refresh");
};
但是我不想再使用它了,那么有没有机会在页面重新加载时加载Impromptu确认框?
提前致谢
答案 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事件,这会让您的用户在关闭页面之前需要点击一个额外的弹出窗口。当网站对我这样做时,我真的不喜欢它,感觉就像是垃圾邮件。