4

我想让我的超链接像按钮一样(仅响应 Click 事件),但是,当您单击它们时,它们会自动更改历史标记,这会弄乱我的应用程序中的历史记录机制。有没有办法抑制超链接的默认行为,因此它不会更改历史令牌?我尝试将 targetHistoryToken 设置为 null,但它不起作用。

谢谢,

4

5 回答 5

4

改为使用Anchor

正如java docHyperlink所说:

如果您想要一个不与历史系统交互的 HTML 超链接(标签),请改用 Anchor。

于 2010-01-10T15:38:54.233 回答
1

就像 rustyshelf 说的,

最终 HTML contactLink = new HTML(""
          + 联系人姓名 + "");
contactLink.addClickHandler(new ClickHandler() {
        公共无效 onClick(ClickEvent 事件){
  ......
 }
}

http://gwt.google.com/samples/Showcase/Showcase.html#CwStackPanel

于 2009-05-07T07:10:54.923 回答
1

只需从 Anchor 中删除 href=""。

<g:Anchor ui:field="clickField">Click here</g:Anchor>
于 2012-04-03T16:31:39.760 回答
1

到目前为止,最简单的方法是创建您自己的扩展 Composite 的类,并将 呈现<a> </a>为 HTML 小部件。我遇到了同样的问题,这就是我解决它的方法。

于 2009-05-06T01:30:59.227 回答
0

我创建了这个类

import com.google.gwt.user.client.ui.HTML;

public class HyperlinkWithoutHistoryToken extends HTML {
    public HyperlinkWithoutHistoryToken(String html, boolean wordWrap) {
        super("<a href=\"javascript:undefined;\">" + html + "</a>", wordWrap);
    }
    public HyperlinkWithoutHistoryToken(String html) {
    super("<a href=\"javascript:undefined;\">" + html + "</a>");
    }
}
于 2009-09-19T20:35:39.763 回答