Events GWT:如何抑制超链接以使其不';我不能更改我的历史令牌

Events GWT:如何抑制超链接以使其不';我不能更改我的历史令牌,events,gwt,hyperlink,gwt-history,Events,Gwt,Hyperlink,Gwt History,我想让我的超链接像按钮一样工作(只对点击事件做出响应),但是,当你点击它们时,它们会自动更改历史标记,这会打乱我应用程序中的历史机制。有没有办法抑制超链接的默认行为,使其不会更改历史标记?我尝试将targetHistoryToken设置为null,但无效 谢谢,到目前为止,最简单的方法是创建自己的类来扩展Composite,并将呈现为HTML小部件。我也有同样的问题,这就是我解决问题的方法。就像rustyshelf说的那样 final HTML contactLink = new HTML(""

我想让我的超链接像按钮一样工作(只对点击事件做出响应),但是,当你点击它们时,它们会自动更改历史标记,这会打乱我应用程序中的历史机制。有没有办法抑制超链接的默认行为,使其不会更改历史标记?我尝试将targetHistoryToken设置为null,但无效


谢谢,

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

就像rustyshelf说的那样

final HTML contactLink = new HTML("" + contactName + ""); contactLink.addClickHandler(new ClickHandler() { public void onClick(ClickEvent event) { ..... } } 最终HTML联系人链接=新HTML(“”) +联系人姓名+“”); addClickHandler(新的ClickHandler(){ 公共作废一次点击(点击事件){ ..... } } 我创建了这个类

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>");
    }
}
import com.google.gwt.user.client.ui.HTML;
不带HistoryToken的公共类Hyperlink扩展HTML{
不带HistoryToken的公共超链接(字符串html、布尔换行符){
超级(“,字包装);
}
不带HistoryToken的公共超链接(字符串html){
超级(“”);
}
}

改用
锚定

正如超链接的java文档所说:

如果您想要一个HTML超链接(标记),而不与 历史记录系统,改用锚定

只需从锚中删除href=“”

<g:Anchor ui:field="clickField">Click here</g:Anchor>
点击这里

我不得不问,如果它的行为像一个按钮,那么它不应该是一个按钮吗?用户对你的小部件的行为是否有一些期望?这是一个公平的问题。我的老板喜欢谷歌阅读器界面,那里的一切都是轻量级的(他们使用链接进行操作)。我想我可以使用一个按钮,改变css使其看起来像一个链接,但我只是想知道我是否可以用hyperlink类本身这样做。嗯……想想看,我可以使用一个标签并在其上添加一些css,使其看起来像一个链接。是的。这是最好最简单的解决方案。标签上的一些ClickHandler就足够像链接了适用于大多数人。也可以使用这种样式
。锚定:悬停{cursor:pointer;}