【发布时间】:2018-01-30 14:11:41
【问题描述】:
经过漫长的一天尝试找到解决此问题的方法后,我一直遇到同样的问题。
基本上,我有一个网站,如果用户点击“浏览器刷新”按钮,我想弹出一个“你确定”警报框,其中包含“重新加载”和“不要重新加载”选项(基本上,浏览器返回的内容)。
令人惊讶的是,它在 IE 中运行良好。但在 chrome 或 firefox 中,刷新通常不会弹出。
仅当我单击正文的某个位置然后单击“浏览器刷新”按钮时才会出现弹出窗口。
我已经有以下和其他许多类似的替代方案:
window.onbeforeunload = function (e) {
e = e || window.event;
// For IE and Firefox prior to version 4
if (e) {
e.returnValue = 'Any string';
}
// For Safari
return 'Any string';
};
我尝试使用'trigger('click')'、'.click()' 事件来模拟页面加载时的点击事件。
但是,在我自己(物理上)单击身体之前,它仍然不起作用。
我创建了一支短笔,它复制了我面临的问题。
https://codepen.io/kanchanrai/pen/LQEZYV
我们将不胜感激任何帮助。提前致谢。
【问题讨论】:
-
为什么你首先需要这样做?如果没有与页面的交互并且没有正当理由需要警告用户,这只会让用户感到烦恼
-
这只是一个例子,并指出了确切的问题。我看到了几乎所有问题的此类回复。这是我正在处理项目的付款页面所必需的。我无法详细说明,但仅此而已,有一个正当的理由需要警告用户。除了需要点击身体的那一部分,我都完成了。
-
从 Chrome 60 开始:Require user gesture for beforeunload dialogs
标签: javascript jquery cross-browser onbeforeunload