2016-07-29 2 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 он открывает ссылку на новой вкладке без проблем. Странно то, что когда я щелкаю правой кнопкой мыши по ссылке и выбираю «открывать в новой вкладке», открывается новая вкладка, и ее содержимое НЕ подается на вкладку источника (где я нажимал ссылку). С другой стороны, если я просто нажму на ссылку, откроются новые вкладки, но ее содержимое также будет введено на вкладке origin. Любая идея о том, как исправить проблему или добиться правильной работы? Спасибо

ответ

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

Nope. в Firefox и Chrome он открывает ссылку на новой вкладке без проблем. Странно то, что когда я щелкаю правой кнопкой мыши по ссылке и выбираю «открывать в новой вкладке», открывается новая вкладка, и ее содержимое НЕ подается на вкладку источника (где я нажимал ссылку). С другой стороны, если я просто нажму на ссылку, откроются новые вкладки, но ее содержимое также будет введено на вкладке origin. – belgoros

+0

j.s является правильным - либо использовать якорь с «_blank», либо метку с помощью ClickHandler. –

+0

@ j.s. Большое спасибо, он работал как шарм :) – belgoros