在GWT中的HTML对象中锚定

时间:2012-02-09 08:42:40

标签: html gwt anchor

我正在GWT中编写一个网页,我使用以下结构:我有一个VerticalPanel作为导航菜单,包含一些gwt按钮。然后我有一个VerticalPanel作为contentPanel,可以加载不同的HTML页面(通过ClientBundle)。 contentPane包含一个gwt-HTML-Object,其中加载了HTML-File。 现在我在导航菜单中有一些按钮,我想在contentPanel中使用类似HTML锚点。那可能吗? 因此,当更长的HTML文件被加载到contentPanel并且我对其中一个按钮执行单击时,页面将跳转到HTML对象中的特定锚点。 任何想法如何实现这一点?

1 个答案:

答案 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();
    }

我推荐第一种方法。