使用 JavaScript(和/或 jQuery),是否可以在不显示警报/确认的情况下暂停用户退出页面一段时间?
(假设用户点击不同的页面或关闭窗口,计时器应该启动三秒钟[在此期间发生某些事情],然后加载下一页或关闭窗口。)
使用 JavaScript(和/或 jQuery),是否可以在不显示警报/确认的情况下暂停用户退出页面一段时间?
(假设用户点击不同的页面或关闭窗口,计时器应该启动三秒钟[在此期间发生某些事情],然后加载下一页或关闭窗口。)
不,在现代浏览器中这是不可能的。
(此外,想想如果每个弹出窗口都这样做会多么烦人)
您可以做的最接近的方法是使用显示对话框,onbeforeunload
但您已要求避免这种情况。
值得一提的是,这是一个神奇的时刻。您可能想向服务器报告某些内容,但由于用户要离开而突然不能。这是通常被认为是不好的做法的事情之一,例如同步 ajax 可能是有意义的。
不,这是不可能的。充其量您可以实现一个onbeforeunload
处理程序,但此时您的选择非常有限(您当然不能“等待 3 秒”)。
浏览器将尝试保护用户,因此这是浏览器强制执行的行为,并且他们有动力强制执行。
这适用于 chrome 和 firefox:
window.onbeforeunload = function() {
var now = new Date();
while( new Date() - now < 3000 );
};
它也会耗尽电池,所以你用一块石头杀死了 2 只鸟。