0

使用 JavaScript(和/或 jQuery),是否可以在不显示警报/确认的情况下暂停用户退出页面一段时间?

(假设用户点击不同的页面或关闭窗口,计时器应该启动三秒钟[在此期间发生某些事情],然后加载下一页或关闭窗口。)

4

3 回答 3

2

,在现代浏览器中这是不可能的。

(此外,想想如果每个弹出窗口都这样做会多么烦人)

您可以做的最接近的方法是使用显示对话框,onbeforeunload但您已要求避免这种情况。

但是你为什么要这样做呢?

值得一提的是,这是一个神奇的时刻。您可能想向服务器报告某些内容,但由于用户要离开而突然不能。这是通常被认为是不好的做法的事情之一,例如同步 ajax 可能是有意义的。

于 2013-06-25T00:35:50.443 回答
0

不,这是不可能的。充其量您可以实现一个onbeforeunload处理程序,但此时您的选择非常有限(您当然不能“等待 3 秒”)。

浏览器将尝试保护用户,因此这是浏览器强制执行的行为,并且他们有动力强制执行。

于 2013-06-25T00:35:41.010 回答
0

这适用于 chrome 和 firefox:

window.onbeforeunload = function() {
    var now = new Date();
    while( new Date() - now < 3000 );
};

它也会耗尽电池,所以你用一块石头杀死了 2 只鸟。

于 2013-06-25T02:04:14.390 回答