窗口返回值,当使用X按钮关闭模式时



我正在开发一个Web应用程序,我们的客户调用它,如下所示:

var result = window.showModalDialog('http://example.com/myapp','My webapp', 'dialogtop=0;dialogleft=0;dialogwidth:' + (window.screen.width - 200) + ';dialogheight:' + (window.screen.height - 200) + ';status=no;resizable=yes;scroll=yes;maximize:yes;minimize:no;' );

当他们关闭此模式对话框时,他们会捕获我们返回的内容。

我们在 window.returnValue 中加载我们的响应,以便他们将其放在 "result" 变量中,但如果他们使用 X 按钮关闭我们的窗口,他们永远不会得到我们的响应,尽管我们已经设置了它。如果他们通过单击我们的"接受"按钮关闭我们的窗口,他们会得到响应。

如果我尝试捕获卸载事件,并再次设置 window.returnValue,他们也不会得到它。

为什么会发生这种情况,我如何确保他们即使按下 X 也能获得返回值?

我无法改变他们如何调用我们的 Web 应用程序,我知道这很糟糕,因为这是一种愚蠢的做事方式......

他们只使用Internet Explorer,并在IE 5模式下运行它...

如果可能的话,你可以尝试使用 onbeforeunload 事件进行测试

这样,您可以尝试向用户显示提示,并通知他们,如果他们继续使用此方法,他们可能会丢失在此页面上所做的更改。然后,您可以指导用户执行正确的步骤。

例:

window.onbeforeunload = confirmExit;
function confirmExit()
{
return "You have attempted to leave this page.  If you have made any changes to the fields without clicking the Accept button, your changes will be lost.  Are you sure you want to exit this page?";
}

最新更新