【发布时间】:2010-02-10 18:46:57
【问题描述】:
当用户有未保存的更改(类似于 SO 的做法)并试图离开当前屏幕时,我有以下 Jquery 函数来通知用户。
<!-- in my aspx page -->
<script type="text/javascript" language="javascript">
window.onbeforeunload = function()
{
if (HasPendingUpdates())
{
return "Changes you have made will not be saved.";
}
}
</script>
这按预期工作,并在用户尝试单击 href 浏览或使用后退按钮等时显示消息框。我遇到的问题是我的链接之一是 asp:LinkButton,因为它需要在离开页面之前关闭一些服务器端代码。当用户单击此LinkButton 时,他们会收到两次提示。
场景:
- 用户点击
LinkButton - 出现提示,用户单击取消按钮。
提示消失,用户仍在屏幕上。很好。
用户点击
LinkButton- 出现提示并单击“确定”按钮。
- 提示消失,再次显示相同的提示。
- 用户再次单击“确定”。
- 提示消失,用户移至下一个屏幕,一切正常。
那么为什么我会收到第二个提示??? OnBeforeUnload 如何触发两次?
【问题讨论】:
标签: asp.net jquery webforms onbeforeunload