我正在尝试像使用<a href="mailto:[email protected]">mail me</a>
标记一样打开电子邮件客户端。
但是我想使用我的自定义小部件,它不是超链接,锚点等。我在小部件中添加了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:[email protected]", "_blank", "");
}
}
除一个细节外,其他所有东西都工作正常:单击窗口小部件时,将打开新的空白浏览器选项卡,并将url设置为mailto:[email protected]
。我不想打开新标签页。我可以以某种方式避免它吗?
注意我设置了_blank
参数,如许多示例中所使用的。我也尝试使用空字符串或其他一些值。我查看了文档,但没有发现任何有用的信息。https://developer.mozilla.org/zh-CN/docs/Web/API/window.open
一种解决方案可能是使用Anchor,但是我的组件更复杂,而不仅仅是单个<a>
链接。
另一个需要注意的细节可能是应用服务器-我现在正在使用Tomcat 7。
试图以编程方式在隐藏的Anchor上触发本地事件对我没有用。(这并不意味着它无法完成。)
这就是我实际解决问题的方式:而不是Window.open()
,我使用了以下调用:
public void onClick(ClickEvent event) {
Window.Location.assign("mailto:[email protected]");
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句