我有一个页面,我在其中打开一个“模态窗口”。它实际上只是一个 DIV,里面有一个 IFRAME,我在其中加载另一个页面。当我想刷新页面时,浏览器会弹出一个窗口说“你确定要离开这个页面吗?重新加载这个页面会导致模态窗口消失。按确定继续,或取消留在当前页面。”
此消息是如何生成的?浏览器如何确定我在那里有一个模态窗口,因为我没有使用来自 JavaScript 的任何 window.open() 调用?有什么办法可以禁用浏览器的这种行为。
我有一个页面,我在其中打开一个“模态窗口”。它实际上只是一个 DIV,里面有一个 IFRAME,我在其中加载另一个页面。当我想刷新页面时,浏览器会弹出一个窗口说“你确定要离开这个页面吗?重新加载这个页面会导致模态窗口消失。按确定继续,或取消留在当前页面。”
此消息是如何生成的?浏览器如何确定我在那里有一个模态窗口,因为我没有使用来自 JavaScript 的任何 window.open() 调用?有什么办法可以禁用浏览器的这种行为。
它可能body.onunload
在 IFRAME 中加载的页面的源代码中。
由于模态窗口本质上是一个 IFRAME,因此当您关闭(或刷新)主窗口时,浏览器知道它正在杀死该 IFRAME,因此该 IFRAME 中的任何body.onunload
内容都会触发。
如果您有一个处理 onbeforeunload 的函数,则会自动生成 Firefox 消息。
您可以通过在处理程序的 and 处返回 null 来禁用它。
这可能是由于某些脚本修改了所有非现场链接以显示此模式窗口,然后返回 true,或者根据您与模式窗口的交互返回 false 。
如果您想去除该行为,您可以删除外部链接的所有点击事件。