window.beforeunload 提示不会隐藏 ajax 更新进度



我使用了捕获

$(window).on('beforeunload unload', function (element) { 
  return 'Are you sure you want to leave?';
});

在同一页面上,我有一个更新面板和更新进度。如果用户通过单击按钮导航到其他页面,则会出现提示消息,并且更新进度也会启动。

如果用户在警报窗口中选择"否"并停留在同一页面上,则更新进度仍保持可见状态。

有什么方法可以捕获用户对"更改可能无法保存"提示的响应,因此根据结果,我将隐藏更新进度图像。

 <asp:UpdatePanel runat="server" ID="ProductSelectorContainerPanel" UpdateMode="Conditional">
                <ContentTemplate>
 <asp:Button runat="server" ID="DoPartialPostBack" OnClick="DoPartialPostBack_Click" Text="Do Postback"/>
   </ContentTemplate>
 </asp:UpdatePanel>

.cs代码

受保护的无效DoPartialPostBack_Click(对象发送器,事件参数 e( { Response.Redirect("page2.aspx"(; }

现在,如果添加调试器,则会首先调用响应重定向。这将调用 jquery 的 beforeunload 代码。并且根据所选结果(在我的情况下停留(,更新进度将触发,因为它是回发。

。所以根据结果,我将隐藏更新进度图像

只需将其隐藏在beforeunload处理程序中即可。如果用户离开页面,它是否隐藏并不重要;他们已经离开了页面。如果他们不这样做,你就得到了你想要的结果。

我更改了为按钮添加完整回发触发器的代码。因此,按钮的行为与普通按钮类似,当用户在警报中选择"否"时,按钮调用将停止。

最新更新