在我们的gwt应用程序中,一些元素从cms加载并作为“HTML”对象添加到页面。到现在为止,这很好。但是现在增加了一个更大的Html-Page,它有一些锚元素可以跳转到这个html文档的不同部分。 这个锚看起来像这样:
<a href="#Chapter3</a>
问题是这会干扰gwt的历史记录。点击这样的令牌会将应用程序引导至<app address>/#Chapter3
,这不是有效的令牌 - 导致启动页面。
那么如何在html页面中添加这样的页面链接?
更新
最后,我希望点击<a href="#Chapter3</a>
跳转到同一文档中的<a name="Chapter3</a>
- 正常的HTML行为。
答案 0 :(得分: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();
}
}
});
如果需要,您可以使用不同的滚动行为(例如,滚动到光标位置)。
答案 1 :(得分:-1)
有点粗糙,但您可以尝试在iframe
(GWT的Frame)中加载HTML内容。
答案 2 :(得分:-2)
Anchor link=new Anchor("Print",true);