2016-07-29 14 views
0

私はGWT 2.5.1を使用していますが、理由を理解できませんが、新しいタブでリンクを開くと表示されます元のコンテンツ(クリックが発生した場所)のタブも同様です。ここにコードがあります:GWTの新しいタブでリンクを開くが、その内容も元のタブに表示する

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", ""); 
      } 
     }); 
    } 

FirefoxとChromeでは、問題なく新しいタブでリンクを開きます。変わったのは、リンクを右クリックして「新しいタブで開く」を選択すると、新しいタブが開き、そのコンテンツが元のタブ(リンクをクリックした場所)に流れないということです。反対に、リンクをクリックするだけで新しいタブが開きますが、その内容も元のタブに挿入されます。 問題を解決する方法や適切な作業を達成するための考え方はありますか?ありがとうございます

答えて

4

これはコードスニペットの予想される動作です。

Anchor link = new Anchor(text, targetUrl); 

このアンカーをクリックすると、targetUrlが現在のタブで開きます。

ClickHandlerを追加すると、targetUrlという新しいタブが開きます。

ソリューション:

がターゲット "_blank" でアンカーを作成し、ClickHandlerを削除します。

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

いいえ。 FirefoxとChromeでは、問題なく新しいタブでリンクを開きます。変わったのは、リンクを右クリックして「新しいタブで開く」を選択すると、新しいタブが開き、そのコンテンツが元のタブ(リンクをクリックした場所)に流れないということです。反対に、リンクをクリックするだけで新しいタブが開きますが、その内容も元のタブに挿入されます。 – belgoros

+0

j.sは右です - "_blank"でアンカーを使用するか、ClickHandlerでラベルを使用してください。 –

+0

@ j.s。ありがとう、それは魅力のように働いた:) – belgoros

関連する問題