如何禁用/覆盖“您想离开此网站吗?”警报?

问题描述 投票:0回答:6

我在弹出窗口中有一个表单,它是通过 AJAX 调用加载的。它是使用 RoR 的

form_for
标签构建的。即使我不修改其中的任何字段并尝试导航到另一个页面,chrome 也会显示以下警报。

enter image description here

我想禁用此警报框。是否可以?如果是的话,怎么办?

我已经尝试过this,但它不再有效。

以下是环境设置,

Ruby version = 1.9.3
Rails version = 3.1.4
Chrome version = 52
jQuery version = 1.10.2
javascript jquery ruby-on-rails ajax
6个回答
18
投票

显示警报是因为在代码中的某个位置,您在卸载事件之前覆盖了窗口,并且当您尝试关闭窗口时,该事件会触发。 尝试禁止此事件,将其放在您的代码中:

window.onbeforeunload = null;

2
投票

您可以在

beforeunload
处理程序中挂钩任何其他函数:

window.addEventListener("beforeunload", function(e){
    yourCustomFunction();
});

2
投票

将其设置为空函数:

window.onbeforeunload = () => {}


0
投票

你也可以试试这个。

$(window).off('beforeunload');


0
投票

添加这一行让我通过了

window.addEventListener("beforeunload", function (e) { return true; });

0
投票

将您的

form
标签括在
div
内,如下所示:

<div class="col-xs-12 no-padding">
  <form role="form" class="form-horizontal pad10-top" id="" onSubmit="return false;">
    ...
  </form>
</div>
© www.soinside.com 2019 - 2024. All rights reserved.