我有以下 Jquery 函数,可以在用户有未保存的更改(类似于 SO 的做法)并试图离开当前屏幕时提示用户。
<!-- 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 如何触发两次?