如何禁用/覆盖“您要离开此站点吗?”警报?
Posted
技术标签:
【中文标题】如何禁用/覆盖“您要离开此站点吗?”警报?【英文标题】:How to disable/override "Do you want to leave this site?" alert? 【发布时间】:2016-12-07 23:50:00 【问题描述】:我在弹出窗口中有一个表单,它是由 AJAX 调用加载的。它是使用 RoR 的form_for
标签构建的。即使我不修改其中的任何字段并尝试导航到另一个页面,chrome 也会显示以下警报。
我想禁用此警告框。可能吗?如果是,怎么做?
我已经尝试过this,但它不再有效。
以下是环境设置,
Ruby version = 1.9.3
Rails version = 3.1.4
Chrome version = 52
jQuery version = 1.10.2
【问题讨论】:
您是如何调用此警报的? 我没有打电话。 Chrome 默认会抛出此错误。当我打开表单时它就会出现,否则一切都会很好。 【参考方案1】:之所以会显示警报,是因为在代码中的某处,您在卸载事件之前覆盖了窗口,当您尝试关闭窗口时,该事件会触发。 尝试禁止此事件在您的代码中添加此事件:
window.onbeforeunload = null;
【讨论】:
但这将删除所有onbeforeunload
事件。我想运行我在onbeforeunload
事件中指定的代码,但不是 chrome 的版本
你不能重写那个函数吗?
window.onbeforeunload = yourCustomFunction;
应该可以工作【参考方案2】:
您可以在 beforeunload
处理程序中挂接任何其他函数:
window.addEventListener("beforeunload", function(e)
yourCustomFunction();
);
【讨论】:
【参考方案3】:将其设置为空函数:
window.onbeforeunload = () =>
【讨论】:
【参考方案4】:将您的form
标签包含在div
中,如下所示:
<div class="col-xs-12 no-padding"><form role="form" class="form-horizontal pad10-top" id="" onSubmit="return false;">
...</form></div>
【讨论】:
【参考方案5】:你也可以试试这个。
$(window).off('beforeunload');
【讨论】:
【参考方案6】:添加此行让我通过
window.addEventListener("beforeunload", function (e) return true; );
【讨论】:
以上是关于如何禁用/覆盖“您要离开此站点吗?”警报?的主要内容,如果未能解决你的问题,请参考以下文章