onbeforeunload - 无法更改页面UI

时间:2013-02-13 17:23:25

标签: javascript onbeforeunload

在我的onbeforeunload函数中,我们自动将ActiveX控件与服务器断开连接 这个过程大约需要3到4秒(我们无法控制)所以我​​想显示一条消息,让用户知道一旦控件断开连接就会发生刷新/导航/关闭窗口。我不想弹出alert(),只想向用户显示“异步”消息。

但是,我似乎无法在onbeforeunload内对页面的UI进行任何更改。我不能使用我拥有的Toast消息类,甚至不能更改“status”div,因为它们似乎没有做任何事情。

这是onbeforeunload功能的限制吗?我唯一的选择是使用alert()吗?

修改
代码示例:

function handleWindowOnBeforeUnload() {
    //alert('Disconnecting from client...');    //Would rather not use an alert()
    ShowToast('Closing connection...');         //Doesn't show
    $('#statusDiv').html('Auto-disconnect...'); //Neither does this
    //This is what takes ~4 seconds
    acx.stopConnection();
}

1 个答案:

答案 0 :(得分:1)

这是onbeforeunload功能的限制。

说实话,这种方法存在缺陷,您应该考虑将应用更改为不需要onbeforeunload功能。

如果您需要断开服务器上的连接,可以检测用户通过长轮询或Web套接字断开连接。我很确定ActiveX也是如此。