“您确定要离开此页面吗?”是如何在浏览器中生成的?

Posted

技术标签:

【中文标题】“您确定要离开此页面吗?”是如何在浏览器中生成的?【英文标题】:How is "Are you sure you want to navigate away from this page? " generated in browsers? 【发布时间】:2010-10-04 00:32:51 【问题描述】:

我有一个打开“模式窗口”的页面。它实际上只是一个 DIV,里面有一个 IFRAME,我在其中加载另一个页面。当我想刷新页面时,浏览器会弹出一个窗口说“你确定要离开这个页面吗?重新加载这个页面会导致模态窗口消失。按确定继续,或取消留在当前页面。”

此消息是如何生成的?浏览器如何确定我在那里有一个模态窗口,因为我没有使用来自 javascript 的任何 window.open() 调用?有什么办法可以禁用浏览器的这种行为。

【问题讨论】:

让我知道你在哪个网站上工作,这样我就可以避免它。 呃,*** 做到了!而且,这对于避免丢失您在页面上编写的更改是一件好事。 在浏览器设置中禁用 JavaScript。 【参考方案1】:

在 IFRAME 中加载的页面源中可能是 body.onunload

由于模态窗口本质上是一个 IFRAME,因此当您关闭(或刷新)主窗口时,浏览器知道它正在杀死该 IFRAME,因此该 IFRAME 中的任何 body.onunload 都会触发。

【讨论】:

你是对的。实际上,我正在使用 Wicket 框架,并在他们的源代码中进行了搜索,并查看了我发现的内容: window.onbeforeunload = function() return "重新加载此页面将导致模式窗口消失。"; 幸运的是,这可以很容易地禁用。谢谢!【参考方案2】:

如果您有处理 onbeforeunload 的函数,则会自动生成 Firefox 消息。

您可以通过在处理程序的 and 处返回 null 来禁用它。

【讨论】:

【参考方案3】:

这可能是由于某些脚本修改了所有站外链接以显示此模式窗口,然后根据您与模态窗口。

如果您想去除这种行为,您可以删除所有外部链接的点击事件。

【讨论】:

以上是关于“您确定要离开此页面吗?”是如何在浏览器中生成的?的主要内容,如果未能解决你的问题,请参考以下文章

如何获得刚刚在 P4 中生成的 CL 编号?

如何查看查询转换器在 Oracle 中生成的查询

如何使用/引用在同一个 json 模式中生成的字段值

如何在 Excel 中生成的 SQL 插入语句中获取行数?

如何删除webstrom中生成的.idea wrokspace

我如何使用在 Jmeter 的下一个线程中生成的令牌