我正在GWT中编写一个网页,我使用以下结构:我有一个VerticalPanel作为导航菜单,包含一些gwt按钮。然后我有一个VerticalPanel作为contentPanel,可以加载不同的HTML页面(通过ClientBundle)。 contentPane包含一个gwt-HTML-Object,其中加载了HTML-File。 现在我在导航菜单中有一些按钮,我想在contentPanel中使用类似HTML锚点。那可能吗? 因此,当更长的HTML文件被加载到contentPanel并且我对其中一个按钮执行单击时,页面将跳转到HTML对象中的特定锚点。 任何想法如何实现这一点?
答案 0 :(得分:1)
我认为应该有两种解决方案:
如果您在导航菜单中使用Anchor小部件或普通html锚点,您可以像使用常规html一样:
导航菜单:
<a href='#myAnchor'>
如果你真的想使用GWT-Buttons,你可能需要使用Window.Location。这样的事情可能很难实现我自己没有尝试过:
button.addClickHandler(new ClickHandler() {
public void onClick(ClickEvent event) {
Window.Location.assign('#myAnchor');
}
});
或者,您可以在contentPanel <a id='myAnchor'>
中设置Anchor的id,并使用以下函数滚动到锚点。
Element elem = DOM.getElementById('myAnchor');
if (elem != null) {
elem.scrollIntoView();
}
我推荐第一种方法。