“您确定要离开此页面吗?”是如何在浏览器中生成的?
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】:这可能是由于某些脚本修改了所有站外链接以显示此模式窗口,然后根据您与模态窗口。
如果您想去除这种行为,您可以删除所有外部链接的点击事件。
【讨论】:
以上是关于“您确定要离开此页面吗?”是如何在浏览器中生成的?的主要内容,如果未能解决你的问题,请参考以下文章