Программный переход по ссылке

Рейтинг: 1Ответов: 2Опубликовано: 16.02.2011

У меня есть объект класса Hyperlink. Я хочу , чтобы для перехода по ссылке использовалась кнопка, а не ссылка, т.е. реакцией на клик по кнопке был переход по ссылке.

final Hyperlink link = new Hyperlink(name, name);
Button btn = new Button(link.getHTML());
btn.addClickHandler(new ClickHandler() {            
    @Override
     public void onClick(ClickEvent event) {
         Window.open("#"+link.getText(), null, null);               
     }
});

Этот код работает, но открывает новое окно обозревателя. Как сделать так, чтобы переход был в текущем окне? Может можно надо передать событие для ссылки?

Ответы

▲ 3Принят

Странно передавать null как параметр открытия страницы, в этом случае вообще результат непредсказуем.

Window.open(link, "_self", "");

Hyperlink - устаревший класс, лучше использовать Anchor:

Anchor anchor = new Anchor();
anchor.setTarget("_self");
anchor.setHref(link);

Ни в коем случае из-за такой проблемы не стоит начинать писать нативный код!

▲ 2

Вместо

Window.open("#"+link.getText(), null, null);

использовать

window.location.replace(link.getText())