是的,我意识到这是可怕的用户界面和糟糕的可访问性,但由于合同工作(我最初没有同意并坚持),我被迫寻找选项。
我知道您可以分配一个事件处理程序来onbeforeunload
喜欢:
window.onbeforeunload = function() {
return 'You have unsaved changes!';
}
这将导致操作系统/浏览器生成一个无法自定义的对话框。它会要求您取消您的请求或继续。
到目前为止,似乎我可以显示任何自定义的唯一方法是window.open
在该事件处理程序中插入一个:
window.onbeforeunload = function() {
var x = window.open('modal.html');
}
这很可能会被任何现代浏览器阻止为“弹出窗口”。我必须用我的对话框显示一个全新的页面,但这似乎是满足需求的唯一方法。
这几乎是我唯一的选择吗?除了强行告诉客户不建议这样做吗?
唯一的其他选择是依靠用户点击“取消请求”然后插入对话框。
我已经看过的问题: