问题标签 [onbeforeunload]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
336 浏览

watir - 如何避免 onbeforeunload 阻止 Watir 测试退出

我有一个网页,它使用 onbeforeunload 来提示用户在他们尝试离开页面时进行确认。此确认甚至会在浏览器窗口关闭时触发。

我的问题是这个提示阻止了 Watir 在测试运行结束时关闭 IE,至少在我手动干预并单击“确定”之前。

即使测试失败,我如何编写测试以使 Watir 自动关闭此提示?我认为测试拆卸方法中可能存在一些条件逻辑,但我需要帮助与弹出窗口进行交互。

注意:我有一个不同的问题,与单击事件创建时与 onbeforeunload 提示进行交互有关。这个问题是关于在由关闭窗口的请求创建时处理该弹出窗口。

0 投票
2 回答
388 浏览

watir - Watir测试中如何点击onbeforeunload提示?

我有一个网页,其中有一个 onbeforeunload 脚本,当用户采取离开当前页面的操作时,该脚本会提示用户。

如何使用 Watir 与此弹出窗口进行交互?我目前的方法如下所示:

问题是,如果我使用“单击不等待”,则不会创建弹出窗口,并且测试会超时。如果我使用“单击”,则会创建弹出窗口,但测试在打开后会挂起。

有什么建议么?

0 投票
9 回答
7143 浏览

javascript - window.beforeunload 在 Firefox 中调用了两次 - 如何解决这个问题?

我正在创建一个安装了 beforeunload 处理程序的弹出窗口。当使用“Close”文件菜单项关闭弹窗时,调用了两次 beforeunload 处理程序,产生了两个“Are you sure you want to close this window?”。出现的消息。

这是 Firefox 的一个错误,我已经在此处报告了它,但我仍然想要一种方法来防止这种情况发生。您能想出一种明智的方法来检测双重 beforeunload 以防止双重消息问题吗?问题是 Firefox 没有告诉我用户选择单击对话框中的哪个按钮 - 确定或取消。

0 投票
5 回答
43648 浏览

javascript - 使用 jQuery 在 Chrome 和 IE 中的 body 元素上设置 onbeforeunload

我有一个系统,我想与用户核实他们是否确定一旦设置了脏标志就想离开页面。

我正在使用以下代码 - 在 FireFox 中,我可以通过 FireBug 查看页面源,并且标签中正确插入了 onbeforeunload 属性。

在 Chrome 和 FireFox 中,这不会发生,我可以在没有任何警告的情况下离开页面。更新 body 标记的 jQuery 行肯定正在执行,只是没有执行。

任何想法如何从这里开始?

0 投票
6 回答
129829 浏览

jquery - jQuery UI 对话框 OnBeforeUnload

我有一个小问题。我试图捕捉窗口的 OnUnLoad 事件并询问确认问题,如果用户决定他们想留下那么很好,如果他们想离开页面,那么他们将丢失所有未保存的数据。这里的问题...

我正在使用 jQuery UI 对话框,当我将以下代码放在我的页面上时,我打开了对话框,当我单击浏览器上的后退按钮时,它永远不会弹出 msgbox。它只是刷新页面:

我使用的解决方案是这里的一个帖子。同样,如果我没有打开 jQuery UI 对话框,msgbox 将正常显示。如果我这样做了,那么它不会显示 msgbox 而只是刷新页面。

有任何想法吗?

0 投票
3 回答
4342 浏览

asp.net - 为什么 OnBeforeUnload 使用 asp:LinkBut​​ton 触发两次?

我有以下 Jquery 函数,可以在用户有未保存的更改(类似于 SO 的做法)并试图离开当前屏幕时提示用户。

这可以按预期工作,并在用户尝试单击 href 浏览或使用后退按钮等时显示消息框。我遇到的问题是我的链接之一是asp:LinkButton因为它需要触发一些服务器端代码在离开页面之前。当用户单击它时,LinkButton他们会收到两次提示。

场景:

  1. 用户点击LinkButton
  2. 出现提示,用户单击取消按钮。
  3. 提示消失,用户仍在屏幕上。好的。

  4. 用户点击LinkButton

  5. 出现提示并单击确定按钮。
  6. 提示消失,同样的提示再次出现。
  7. 用户再次单击确定。
  8. 提示消失,用户移动到下一个屏幕,一切都很好。

那为什么我得到第二个提示???OnBeforeUnload 如何触发两次?

0 投票
1 回答
1695 浏览

javascript - Javascript 同步 AJAX 超时

当页面关闭时,我的 Javascript 需要向服务器发送一些数据,我目前使用window.onbeforeunload. 当然,这样做的问题是,如果我的服务器运行时间过长或网络连接中断,浏览器就会死机。

根据我的阅读,无法为同步 AJAX 请求指定超时,并且异步 AJAX 请求在window.onbeforeunload. 我对如何解决这个问题的最佳猜测是使用异步请求,然后锁定浏览器一段时间以让请求完成:

这行得通吗?这种方法有什么潜在的问题吗?

0 投票
4 回答
6799 浏览

google-chrome - 谷歌浏览器扩展中 popup.html 的 onbeforeunload 事件是否触发?

我正在编写一个带有弹出窗口和背景页面的 google chrome 扩展程序。弹出窗口订阅了后台生成的某些事件,我想在弹出窗口消失时取消订阅这些事件。但是,我没有看到从弹出窗口生成的 onbeforeunload 或 onunload 事件。这些事件被触发了吗?如果没有,关于如何捕获弹出关闭的任何想法?

0 投票
1 回答
2044 浏览

iframe - onbeforeunload 困境:iframe 中断与刷新/返回按钮上的烦人消息单击

我正在实现一个名为SearchInsideOut的搜索服务。这个搜索服务只是用完整的网页替换网页结果(是的,我用过iframe)。

我必须处理的问题是破坏 iframe 的页面。
我发现有希望的解决方案是onbeforeunload让用户决定是留下还是离开我的网站。
但这也产生了另一种令人讨厌的行为。当用户点击我站点中的其他链接时,onbeforeunload也会被触发。

幸运的是,我可以通过放置window.onbeforeunload=null我网站的这些链接的 onclick 事件来解决这个问题。
不幸的是,我不知道如何检测外部事件,例如单击“刷新/返回”按钮。
我应该怎么做才能解决这个困难?

高度赞赏所有建议和意见。

0 投票
2 回答
655 浏览

javascript - onBeforeUnload 和多种形式

当用户离开页面时,我希望具有在页面上提交多个表单的功能。有这个“你想拯救吗?” 问题,到目前为止我的代码是这样的:

它可能看起来有点矫枉过正,但它是由我们的模板引擎自动生成的,并且可以扩展到更多的形式。

身体标签:

其中一种形式的有趣部分(另一种看起来相同:

现在来解决问题: 如果我更改两个表单中的值并离开页面,则会弹出第一个表单的问题。我单击确定,表单已保存,但form1.submit()触发了一个新的 onBeforeUnload 事件,这打破了我的想法的整个逻辑。

现在的问题是,是否有一种方法可以在用户离开时只询问一次时提交页面上的所有表单?

非常感谢任何帮助!

谢谢。