我有一种情况需要将一个gwt对话框(我最好的理解是将其作为带有z-index操作的div实现)集成到现有的html页面中。
有两种情况:
1.哪个是首选的,更复杂的是我给主机html页面另一个页面,它们嵌入了iframe,我在那里工作我的魔法(可能以某种方式连接到父窗口并植入我的对话框,我不确定) 。
2.我对html页面的访问权限有限,我在那里加了一些代码来加载我的对话框。
关于如何实施这些的任何想法或想法?
我已经和GWT一起工作了几个月并且发现它非常好,虽然我离整个HTML区域都很远,直到现在我所有的工作都完全在我的java课程中完成。
感谢您的任何想法和帮助
以太
答案 0 :(得分:2)
我假设在对话框中你指的是一个在页面加载时不可见的弹出窗口,并且可以通过点击现有HTML中的某些内容来显示。实现这一目标的一个简单策略是包装现有的HTML。
我没有使用选项1的经验。对于2,您需要在现有HTML中进行更改 添加JS导入,例如
<script type="text/javascript" language="javascript" src="/com.your.org.Module/com.your.org.module.client.Module.nocache.js"></script>
然后为要激活对话框的某个可点击元素添加ID,例如
<button id="launchDialog">Show Dialog</button>
最后添加一个带有id的空div,将对话框插入DOM。
<div id="dialog"></div>
然后您的模块中所需的只是
public class Module implements EntryPoint {
@Override
public void onModuleLoad() {
Button b = Button.wrap(DOM.getElementById("launchDialog"));
b.addClickHandler(new ClickHandler() {
public void onClick(ClickEvent event) {
RootPanel panel = RootPanel.get("dialog");
Widget w = ... // your dialog widget here
panel.add(w);
}
});
}
}
最后,您可以使用“display:none”样式以及窗口小部件上的show()和hide()方法来播放popup div的可见性。