我正在尝试创建一个“打开”按钮,这将打开一个新网站。
不幸的是,我不明白如何创建一个打开新网站的活动。 如何将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);
提前感谢!
答案 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和/或操纵浏览器历史记录。