GWT-Button充当超链接

时间:2011-01-16 00:25:34

标签: gwt

我正在尝试创建一个“打开”按钮,这将打开一个新网站。

不幸的是,我不明白如何创建一个打开新网站的活动。 如何将Hyperlink小部件注册到此ClickEvent:

 Button button = new Button("Open");
 button.addClickHandler(new ClickHandler() {
  public void onClick(ClickEvent event) {  
          Hyperlink widget = new Hyperlink("Home Page", "Home");

             }
 });
 rootPanel.add(button, 568, 275);

提前感谢!

3 个答案:

答案 0 :(得分:10)

单击按钮时,此代码将打开当前窗口中的链接:

Button button = new Button("Open");
button.addClickHandler(new ClickHandler() {
  public void onClick(ClickEvent event) {
    Window.Location.assign("http://www.someurl.com");
  }
});
rootPanel.add(button);

答案 1 :(得分:2)

您无法使用hyperlink执行此操作。您应该使用anchor或窗口分配或仅使用简单的本机JavaScript方法

Button button = new Button("Open");
button.addClickHandler(new ClickHandler() {
      public void onClick(ClickEvent event) {  
          Window.Location.assign("new url");

          getURL("new url");

或将锚添加到面板

         Anchor a = new Anchor("new page", "new url");
         RootPanel.get().add(a);
     }
});
rootPanel.add(button, 568, 275);


public static native String getURL(String url)/*-{
        return $wnd.open(url, 'target=_blank')
    }-*/;

答案 2 :(得分:0)

您需要让事件处理程序请求更改URL,而不是让它添加新的窗口小部件。

您想在新窗口或同一窗口中打开它吗?

一般来说,您可能希望让您的点击处理程序代码使用History类或Window类来打开不同的URL和/或操纵浏览器历史记录。