Hyperlink.getHTML()返回的字符串不是GWT小部件,因此它没有点击处理程序或任何与其关联的特殊小部件功能。这只是一个字符串。这就是为什么它的工作原理,当你直接窗口小部件添加超链接到你的面板,像这样:
horizontalPanel.add(new Label("Already a registered member - "));
horizontalPanel.add(new Hyperlink("Login", ""));
horizontalPanel.add(new Label(" - Bla bla bla"));
如果您倾向于使用小部件,而不是它们的字符串/ HTML表示,他们的活动将正常工作。
P.S:如果你想要一个HTML超链接而不与GWT的历史系统进行交互,你可以使用Anchor来代替。你在你的页面已经有此HTML:
<p>
Already a registered member -
<a id="loginLink" href="javascript:void(0);">Login</a>
- Bla bla bla
</p>
然后你就可以有固定小部件包装现有的HTML超链接,并添加点击处理了这一点。
Anchor a = Anchor.wrap(DOM.getElementById("loginLink"));
a.addClickHandler(...);