2

我有一个 GWT Places/Activity web 应用程序。我使用Anchor'click事件将用户移动到新的“位置”,因此用户无法在新窗口或选项卡中打开任何“链接”。问题是 - 我如何使所有这些链接成为真实的?

4

2 回答 2

7

在使用 a Hyperlink(or InlineHyperlink) 有效时,我宁愿在 aClickHandler上使用 a Anchor,因为如果任何活动在 URL 中返回非空值,mayStop则还不会更改(而使用 a Hyperlink,即使用户选择,它也会更改取消导航)。

要在 上设置目标 ( href) Anchor,只需使用您的PlaceHistoryMapper. 为了正确处理 ctrl+click、middle-click 和 right-click,重复使用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();
      }
   }
});
于 2011-10-20T12:22:50.883 回答
3

也许不是使用和Anchor收听设置为地名的ClickEvent使用。HyperlinktargetHistoryToken

例如

<g:Hyperlink text="Home" targetHistoryToken="home" />

于 2011-10-20T09:41:49.447 回答