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