Open new Tab when button is clicked

2019-06-02 11:16发布

问题:

using wicket I want to open a new tab when a button or link is clicked, how can I achieve it?

what I have managed to do is to open it in a pop up like this:

 PopupSettings popupSettings = new  PopupSettings("popuppagemap").setLeft(0).setHeight(500).setWidth(500).setHeight(0);

    // Popup example
final Link<Void> setPopupSettings = new BookmarkablePageLink<Void>("searchBtn", HomePage.class)
   .setPopupSettings(popupSettings);

but this opens it in a new window.

回答1:

no problem to open a link in a new tab: just add 'target="_blank"' to the link.

final Link<Void> link = new BookmarkablePageLink<Void>("link", HomePage.class){
    @Override
    protected void onComponentTag(ComponentTag tag) {
        super.onComponentTag(tag);
        tag.put("target", "_blank");
    }
};
add(link);


回答2:

This is not a function of Wicket but of your browser and HTML in general.

simply add a target tag to your link:

<a href="#" target="_blank" wicket:id="myCoolLink">My Cool Link</a>

What actually happens when the link is clicked will depend on the browser. Before browsers had tabs, this would have opened a new window, now most browsers will open a new tab by default, however, you can't depend on that happening because the feature is optional.



回答3:

If you want a button instead of a link that opens a new tab you can use:

html:

<a wicket:id="tabFormViewEmpBut"><button type="button">Click Me!</button></a>

And

Java wicket:

final Link<Void> link = new BookmarkablePageLink<Void>("tabFormViewEmpBut", HomePage.class) {
   @Override
   protected void onComponentTag(ComponentTag tag) {
     super.onComponentTag(tag);
     tag.put("target", "_blank");
   }
};
add(link);