JavaScript/Wicket:如何显示阻止用户交互的覆盖

JavaScript / Wicket : How to display an overlay which prevents user interaction

本文关键字:用户 交互 覆盖 显示 Wicket 何显示 JavaScript      更新时间:2024-03-04

我正在寻找一种用于显示覆盖的解决方案,该解决方案应该阻止用户交互。我想开始上传并强制用户等待,直到它完成。完成后,应移除覆盖层。

背景:

我正在使用ApacheWicket(Java)来构建我的网络应用程序。上传对话框位于模式窗口中。在ModalWindow中提交表单(上传)后,应显示覆盖,防止用户交互并显示某种消息。

有什么聪明的方法吗?也许是Wicket方式还是简单的javascript方式?

我们使用jQuery BlockUI插件来实现这一点。我们将其嵌入到IAjaxCallListener中。在before处理程序中,我们阻塞UI,在complete处理器中,我们释放阻塞。然而,它不能很好地与Wicket的模态窗口配合使用。

以下是Apache Isis为此使用的一些代码:https://github.com/apache/isis/blob/839df6a389949957982543f3f715f35d81437e62/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/jquery.isis.wicket.viewer.js#L88-L96每当触发Ajax调用时,它就会显示覆盖整个页面的面纱。只有当单击的Ajax组件具有CSS类"noVeil"时,面纱才会显示出来。

面纱的CSS位于:https://github.com/apache/isis/blob/839df6a389949957982543f3f715f35d81437e62/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides.css#L46-L59