我有一个GWT Places / Activities网络应用程序。我使用Anchor
的{{1}}事件将用户移动到新的“位置”,因此用户无法在新窗口或标签中打开任何“链接”。问题是 - 如何使所有这些链接成为现实?
答案 0 :(得分:7)
使用Hyperlink
(或InlineHyperlink
)时,我宁愿在ClickHandler
上使用Anchor
,因为如果任何活动返回非空值在mayStop
中,网址尚未更改(而使用Hyperlink
,即使用户选择取消导航,也会有。)
要在href
上设置目标(Anchor
),只需使用PlaceHistoryMapper
即可。要正确处理ctrl +单击,中键单击并右键单击,请重用HyperlinkImpl
:
Anchor anchor = new Anchor("text", "#" + placeHistoryMapper.getToken(targetPlace));
anchor.addClickHandler(new ClickHandler() {
private static final HyperlinkImpl IMPL = GWT.create(HyperlinkImpl.class);
@Override
public void onClick(ClickEvent event) {
if (IMPL.handleAsClick(event)) {
placeController.goTo(targetPlace);
event.preventDefault();
}
}
});
答案 1 :(得分:3)
也许不是使用Anchor
而是使用ClickEvent
使用Hyperlink
并将targetHistoryToken
设置为地名。
e.g。
<g:Hyperlink text="Home" targetHistoryToken="home" />