4

是的,我意识到这是可怕的用户界面和糟糕的可访问性,但由于合同工作(我最初没有同意并坚持),我被迫寻找选项。

我知道您可以分配一个事件处理程序来onbeforeunload喜欢:

window.onbeforeunload = function() {
    return 'You have unsaved changes!';
}

这将导致操作系统/浏览器生成一个无法自定义的对话框。它会要求您取消您的请求或继续。

到目前为止,似乎我可以显示任何自定义的唯一方法是window.open在该事件处理程序中插入一个:

window.onbeforeunload = function() {
     var x = window.open('modal.html');
}

这很可能会被任何现代浏览器阻止为“弹出窗口”。我必须用我的对话框显示一个全新的页面,但这似乎是满足需求的唯一方法。

这几乎是我唯一的选择吗?除了强行告诉客户不建议这样做吗?

唯一的其他选择是依靠用户点击“取消请求”然后插入对话框。

已经看过的问题:

4

3 回答 3

1

根据您已经看过的问题,除了传递要由浏览器显示的字符串消息之外,您无法自定义该对话框。

window.onbeforeunload - MDC

于 2010-07-15T15:14:02.277 回答
1

我刚刚去了window.openonbeforeunload的路线。

于 2010-07-18T06:14:15.730 回答
-1

您可以使用在 onbeforeunload 时显示的隐藏 Flash .swf 而不是 window.open

于 2010-07-15T15:15:23.960 回答