2016-07-29 36 views
0

Ich benutze GWT 2.5.1 und kann nicht herausfinden, warum, aber beim Öffnen eines Links in einem neuen Tab wird angezeigt der gleiche Inhalt im Original (wo die Klicks herkommen). Hier ist ein Code:Öffnen Sie einen Link in einem neuen Tab in GWT funktioniert aber zeigt seinen Inhalt in der ursprünglichen Registerkarte sowie

private void createMyloLink(String text, String targetUrl) { 
     Anchor link = new Anchor(text, targetUrl); 
     link.addClickHandler(new ClickHandler() { 

      @Override 
      public void onClick(ClickEvent event) { 
       Window.open(link.getHref(), "_blank", ""); 
      } 
     }); 
    } 

in Firefox und Chrome öffnet es den Link in einem neuen Tab ohne Problem. Was komisch ist, ist, dass, wenn ich mit der rechten Maustaste auf den Link klicke und "in einem neuen Tab öffne" wähle, der neue Tab geöffnet wird und dessen Inhalt NICHT in den Tab des Ursprungs fließt (wo ich auf den Link geklickt habe). Auf der anderen Seite, wenn ich nur auf den Link klicke, öffnet sich die neue Registerkarte, aber ihr Inhalt wird auch in die Ursprungs-Registerkarte eingefügt. Irgendeine Idee, wie man das Problem beheben oder das richtige Arbeiten erreichen kann? Vielen Dank.

Antwort

4

Dies ist das erwartete Verhalten Ihres Code-Snippets.

Anchor link = new Anchor(text, targetUrl); 

Wenn Sie auf diesen Anker klicken, wird der targetUrl im aktuellen Tab geöffnet.

Durch Hinzufügen der ClickHandler wird eine neue Registerkarte mit targetUrl geöffnet.

Lösung:

erstellen Anker mit Ziel "_blank" und die ClickHandler entfernen.

private void createMyloLink(String text, String targetUrl) { 
    Anchor link = new Anchor(text, targetUrl, "_blank"); 
} 
+0

Nein. in Firefox und Chrome öffnet es den Link in einem neuen Tab ohne Problem. Was komisch ist, ist, dass, wenn ich mit der rechten Maustaste auf den Link klicke und "in einem neuen Tab öffne" wähle, der neue Tab geöffnet wird und dessen Inhalt NICHT in den Tab des Ursprungs fließt (wo ich auf den Link geklickt habe). Auf der anderen Seite, wenn ich nur auf den Link klicke, öffnet sich die neue Registerkarte, aber ihr Inhalt wird auch in die Ursprungs-Registerkarte eingefügt. – belgoros

+0

j.s ist richtig - entweder verwenden Sie Anker mit "_blank" oder ein Label mit einem ClickHandler. –

+0

@ j.s. Vielen Dank, es hat wie ein Charme funktioniert :) – belgoros