2009-12-01 2 views
0

Как сделать гиперссылку для текущей странице пожара событие смены истории?gwt hyperlink changeEvent

Например, на http://localhost:8080/index.html#foo есть гиперссылка с историейToken foo. Как я могу получить приложение для обработки/запуска события щелчка/изменения?

Является ли я во власти характера поведения браузера?

ответ

0
Hyperlink myLink = new Hyperlink("foo"); 
myLink.addClickHandler(new ClickHandler() { 
    @Override 
    public void onClick(ClickEvent event) { 
    String currentToken = History.getToken(); 
    String newToken = ((Hyperlink) event.getSource()).getTargetHistoryToken(); 
    if (currentToken == newToken) { 
     History.fireCurrentHistoryState(); 
    } 
    } 
}); 
0

Нечто подобное выстреливает этот URL и добавляет его в истории

History.newItem("foo", true); 

это только добавляет его к истории, как ответ на действия пользователя:

History.newItem("foo", false); 

То есть установить HistoryListener (onHistoryChanged), и реагировать только на это.

Если пользователь нажимает на ссылку/переходит в избранное напрямую, ответьте изнутри onHistoryChanged.

Когда пользователь что-то делает, и вам нужно изменить URL-адрес, запустите History.newItem (..., true) и снова ответьте на него в onHistoryChanged.

1

Чтобы получить возможность отвечать на ваш запрос на Hyperlink, вы можете добавить ClickHandler в гиперссылку. ClickHandler должен выполнить работу по обновлению интерфейса вашего приложения и т. Д. Значок истории будет автоматически обновляться на основе набора токенов, установленного в конструкторе метода Hyperlink, и метод History.newItem() не нужно вызывать.

Чтобы обрабатывать произвольные URL-адреса с вашими жетонными маркерами, вставленными в поле url браузера или с закладкой ваших пользователей, вам необходимо реализовать ValueChangeHandler. Например, проверьте документацию на номер HyperLink.

+0

Это похоже на правильный ответ. –

+0

Можете ли вы пометить ответ как правильный, если считаете его правильным. Буду премного благодарен. Кроме того, удачи с вашим приложением. – Carnell

+0

Как только я получу шанс доказать, что это работает, я определенно буду принимать ответ. –

Смежные вопросы