我想让我的超链接像按钮一样(仅响应 Click 事件),但是,当您单击它们时,它们会自动更改历史标记,这会弄乱我的应用程序中的历史记录机制。有没有办法抑制超链接的默认行为,因此它不会更改历史令牌?我尝试将 targetHistoryToken 设置为 null,但它不起作用。
谢谢,
我想让我的超链接像按钮一样(仅响应 Click 事件),但是,当您单击它们时,它们会自动更改历史标记,这会弄乱我的应用程序中的历史记录机制。有没有办法抑制超链接的默认行为,因此它不会更改历史令牌?我尝试将 targetHistoryToken 设置为 null,但它不起作用。
谢谢,
改为使用Anchor
。
正如java docHyperlink
所说:
如果您想要一个不与历史系统交互的 HTML 超链接(标签),请改用 Anchor。
就像 rustyshelf 说的,
最终 HTML contactLink = new HTML("" + 联系人姓名 + ""); contactLink.addClickHandler(new ClickHandler() { 公共无效 onClick(ClickEvent 事件){ ...... } }
http://gwt.google.com/samples/Showcase/Showcase.html#CwStackPanel
只需从 Anchor 中删除 href=""。
<g:Anchor ui:field="clickField">Click here</g:Anchor>
到目前为止,最简单的方法是创建您自己的扩展 Composite 的类,并将 呈现<a> </a>
为 HTML 小部件。我遇到了同样的问题,这就是我解决它的方法。
我创建了这个类
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>");
}
}