下面是我用Vaadin写的代码,当用户点击按钮时,代码打开页面www.google.com
。
我的问题是,有没有什么方法可以让我指定页面是在一个新的标签打开?
谢谢。
button.addClickListener(new Button.ClickListener() {
public void buttonClick(ClickEvent event) {
getUI().getPage().setLocation("http://www.google.com");
}
});
5条答案
按热度按时间zzlelutf1#
_blank
窗口名在这里很重要。请注意,您可能也有浏览器,可能会在新窗口中打开资源。open()
方法还有另一个签名,即可能符合要求的人。
参考:页面(Vaadin 7.2.1 API)。
vuktfyat2#
请尝试以下代码:
cgyqldqp3#
不鼓励使用
Button
、BrowserWindowOpener
和getUI().getPage().open("http://www.google.com", "_blank");
,因为这通常会被弹出窗口阻止程序阻止。使用
Link
组件:查看更多Vaadin Link Documentation
sg2wtvxw4#
这取决于你想达到什么目的。
溶液1
如果你想让你的按钮打开一个新的标签,BrowserWindowOpener可能是正确的解决方案。
溶液2
只有当按住键盘上的Ctrl(Alt,Shift,...)键时,您的按钮才应该在新标签页中打开。如果没有,请在现有标签页中打开。在这种情况下,您可以尝试使用Page#open()方法打开新标签页。请注意,浏览器可能会尝试阻止您的操作,并警告用户他们已经阻止了弹出窗口(即使它不是弹出窗口,而是新标签页)。
方案三
如果你想要在现有标签页中单击鼠标左键打开,在新标签页中单击鼠标中键时的常见行为,请使用链接而不是按钮。在这种情况下,浏览器可能会允许你打开新标签页。
mctunoxg5#
在Vaadin 24上,这些答案都不适合我,很多方法都被弃用了。这是目前有效的: