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(...);