jim chill
jim chill

Reputation:

GWT: How to suppress hyperlink so that it doesn't change my history token

I want to make my hyperlinks act like buttons (only respond to Click event) however, they change the history token automatically when you click on them, which messes up my history mechanism in my application. Is there a way to suppress the default behaviour of the hyperlink so it doesn't change the history token? I tried setting targetHistoryToken to null but it didn't work.

Thanks,

Upvotes: 5

Views: 2574

Answers (5)

Sreehari Puliyakkot
Sreehari Puliyakkot

Reputation: 736

Just remove href="" from Anchor.

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

Upvotes: 1

Eduard Wirch
Eduard Wirch

Reputation: 9922

Use Anchor instead.

As java doc of Hyperlink says:

If you want an HTML hyperlink ( tag) without interacting with the history system, use Anchor instead.

Upvotes: 5

raisercostin
raisercostin

Reputation: 9189

I created this class

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>");
    }
}

Upvotes: 0

signalpillar
signalpillar

Reputation: 21

Like rustyshelf says,

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

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

Upvotes: 1

rustyshelf
rustyshelf

Reputation: 45101

The easiest way by far to do this is to create your own class that extends Composite, and just renders an <a> </a> as a HTML widget. I had this same problem and that's how I got around it.

Upvotes: 1

Related Questions