GWT:如何抑制超链接,以便它不会更改我的历史记录标记

时间:2009-05-05 16:21:03

标签: events gwt hyperlink gwt-history

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

谢谢,

5 个答案:

答案 0 :(得分:4)

改为使用Anchor

正如Hyperlink的java文档所说:

  

如果你想要一个HTML超链接(标签)而不与之交互   历史系统,改为使用Anchor。

答案 1 :(得分:1)

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

答案 2 :(得分:1)

像rustyshelf说的那样,

final HTML contactLink = new HTML(""
          + contactName + "");
contactLink.addClickHandler(new ClickHandler() {
        public void onClick(ClickEvent event) {
  .....
 }
}

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

答案 3 :(得分:1)

从Anchor中删除href =“”。

<g:Anchor ui:field="clickField">Click here</g:Anchor>

答案 4 :(得分: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>");
    }
}