0

在我们的 gwt 应用程序中,一些元素从 cms 加载并作为“HTML”对象添加到页面。到目前为止,这工作正常。但是现在添加了一个更大的 Html 页面,其中有一些锚元素可以跳转到这个 html 文档的不同部分。这个锚看起来像这样:

<a href="#Chapter3</a>

问题是这会干扰 gwt 的历史令牌。单击此类令牌将引导应用程序进入<app address>/#Chapter3,这不是有效的令牌 - 导致开始页面。

那么如何在html页面中添加这样的inpage链接呢?

更新 最后我希望点击<a href="#Chapter3</a>跳转到<a name="Chapter3</a>同一个文档 - 正常的 html 行为。

4

3 回答 3

1

将 ClickHandler 附加到您的 HTML 小部件:

myHTMLWidget.addClickHandler(new ClickHandler() {
    @Override
    public void onClick(ClickEvent event) {

        // Stop this event
        event.preventDefault();

        Element e = Element.as(event.getNativeEvent().getEventTarget());
        if (e.getAttribute("href").contains("#")) {
            e.scrollIntoView();
        }
    }
});

如果需要,您可以有不同的滚动行为(例如,滚动到光标位置)。

于 2012-09-22T14:57:32.013 回答
-1

iframe有点粗糙,但您可以尝试在(GWT 的Frame)中加载您的 HTML 内容。

于 2012-09-20T21:01:42.280 回答
-2
Anchor link=new Anchor("Print",true);
于 2012-09-20T11:20:16.097 回答