我的VAADIN应用程序中有一个MenuBar,在这个MenuBar中我有一个指向我wiki的链接:
Wiki = new Link();
Wiki.setCaption("Wiki");
Wiki.setStyleName("mypicto");
Wiki.setImmediate(true);
Wiki.setSizeUndefined();
Wiki.setIcon(iconWiki);
使用命令:
MenuBar.Command wikiLink = new MenuBar.Command() {
public void menuSelected(MenuItem selectedItem) {
getUI().getPage().open("url_to_wiki","_blank");
}
};
然后我在我的MenuBar中添加了链接和命令
MenuBar menuBar = new MenuBar();
menuBar.addItem("Wiki",iconWiki, wikiLink);
问题是,我无法在新标签页中打开链接,它只在弹出窗口中打开,默认情况下几乎在所有网络浏览器中都被阻止。
有没有办法在另一个标签中打开我的链接,而不是在我的MenuBar中弹出窗口?
答案 0 :(得分:0)
我认为这可能就是你要找的...... https://vaadin.com/directory#addon/activelink
这个插件让我在新标签页面中打开一个页面。我使用Vaadin 7 Cookbook中的代码对其进行了测试。
@SuppressWarnings("serial")
public class DemoActiveLink extends UI {
@WebServlet(value = "/*", asyncSupported = true)
@VaadinServletConfiguration(productionMode = false, ui = DemoActiveLink.class)
public static class Servlet extends VaadinServlet {
}
@Override
public void init(VaadinRequest request) {
ActiveLink link = new ActiveLink("Vaadin", new ExternalResource(
"http://vaadin.com"));
link.setTargetName("_blank");
link.addListener(new LinkActivatedListener() {
public void linkActivated(LinkActivatedEvent event) {
Notification.show("Link was opened in a new window.");
}
});
setContent(link);
}
}
&安培;
@SuppressWarnings("serial")
public class DemoButtonLink extends UI {
@Override
public void init(VaadinRequest request) {
Button button = new Button("Vaadin");
button.addClickListener(new ClickListener() {
@Override
public void buttonClick(ClickEvent event) {
getPage().open("http://vaadin.com", "Vaadin");
}
});
button.setStyleName(Reindeer.BUTTON_LINK);
setContent(button);
}
}