GWT:在未打开浏览器选项卡的情况下打开新邮件窗口

GWT:在未打开浏览器选项卡的情况下打开新邮件窗口,gwt,mailto,Gwt,Mailto,我正在尝试打开一个电子邮件客户端,就像使用标记一样 但我想使用我的自定义小部件,它不是超链接、锚等等。我在我的小部件中添加了一个DOM处理程序来监听点击: public class VContactWidget extends VHorizontalLayout implements ClickHandler { private HandlerRegistration clickHandler; public VContactWidget() { // added some cont

我正在尝试打开一个电子邮件客户端,就像使用
标记一样

但我想使用我的自定义小部件,它不是超链接、锚等等。我在我的小部件中添加了一个DOM处理程序来监听点击:

public class VContactWidget extends VHorizontalLayout implements ClickHandler {

private HandlerRegistration clickHandler;

public VContactWidget() {
    // added some content here
    clickHandler = addDomHandler(this, ClickEvent.getType());
}

@Override
public void onClick(ClickEvent event) {
    Window.open("mailto:john.doe@mail.com", "_blank", "");
}

}
除了一个细节外,一切正常:当点击小部件时,新的空浏览器选项卡将打开,url设置为
mailto:john。doe@mail.com
。我不想打开新标签。我能设法避免吗

注:我设置了
\u blank
参数,如许多示例中所用。我还尝试使用空字符串或其他一些值。我查阅了文档,但没有发现任何有用的东西。

一种解决方案可能是使用锚点,但我的组件更复杂,而不仅仅是单个
链接


另一个需要注意的细节可能是应用服务器-我现在正在使用Tomcat 7。

这不是您可以控制的。此链接是在新选项卡中打开还是在新窗口中打开取决于浏览器设置和用户首选项

我不认为如果你用锚或窗户会有什么不同。在这两种情况下,不同浏览器中的行为可能不同。还请记住,对于某些用户,单击此链接将打开Outlook或Mail,而对于其他用户,它将在浏览器窗口中打开Gmail

更新:


如果您想要一个

的确切行为,尝试通过编程在隐藏的锚上触发本机事件对我不起作用。(这并不意味着它无法完成。)

这就是我实际解决问题的方法:我使用以下调用代替
Window.open()

public void onClick(ClickEvent event) {
    Window.Location.assign("mailto:john.doe@mail.com");
}

谢谢你的回答,安德烈。如果在静态html页面中直接使用代码,则不会打开新选项卡。(至少在Chrome中)这正是我想要的。我希望,使用锚,它生成完全相同的代码,将以同样的方式运行。(不,我没有尝试过,因为我无论如何都不能使用Anchor。)它看起来不仅仅依赖于浏览器设置。它还依赖于默认的电子邮件客户端。对于许多用户,点击此链接将打开Outlook或Mail,而对于其他用户,它将打开Gmail等。再次感谢您的努力,Andrei。但是,我无法通过编程方式在隐藏的锚上触发本机事件。我找到了另一个解决方案,看看我自己的答案。干杯