如何在 GWT 中的代码中单击锚点?

问题描述 投票:0回答:3

Button 类中有

.click()
方法,您可以从代码中
.click()
它,而不是实际单击它

Button b = new Button("b");
b.click();

如何使用 Anchor 做到这一点?我调用 rpc,我想在新选项卡中打开它

onSuccess();

Anchor a = new ("a", "url", "_blank");

a.addClickHandler(new ClickHandler() {

   @Override
   public void onClick(ClickEvent event) {
           RPC(onSuccess()){
                  String href = rpc.getUrl();
                  a.setHref(href);  
                  a.click(); // How can I do that ?
           }

   }
});
gwt
3个回答
4
投票

以下代码片段对我有用:

public static native void click(String url)
/*-{

    var a = document.createElement('a');
    document.body.appendChild(a);
    a.href = url;
    a.click();

}-*/;

2
投票

您可以使用

Window.Location.assign("url");

这个方法也可以帮助你:

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

0
投票

感谢 Dosi Bingov 的回答。

这也可以在纯 GWT 中完成:

Anchor anchor = new Anchor();
anchor.setHref(url);
anchor.getElement().<ButtonElement> cast().click();

(按语法将锚元素转换为 ButtonElement 使 GWT 编译器允许 click() 方法。)

看起来没有必要在body中添加anchor元素。不过,如果有必要,可以添加锚元素(作为第二行插入)

Document.get().getBody().appendChild(anchor.getElement());
© www.soinside.com 2019 - 2024. All rights reserved.