Якоря в HTML-объекте в GWT - PullRequest
       8

Якоря в HTML-объекте в GWT

0 голосов
/ 09 февраля 2012

Я пишу веб-страницу в GWT и использую следующую структуру: У меня VerticalPanel в качестве меню навигации, содержащего несколько кнопок gwt.Тогда у меня есть VerticalPanel в качестве contentPanel, куда можно загружать разные HTML-страницы (через ClientBundle).ContentPane содержит один gwt-HTML-объект для того, в который загружен HTML-файл.Теперь у меня есть несколько кнопок в меню навигации, которые я хотел бы использовать как якоря HTML в contentPanel.Это возможно?Поэтому, когда более длинный HTML-файл загружается в contentPanel, и я выполняю щелчок по одной из этих кнопок, страница переходит к конкретной привязке в HTML-объекте.Есть идеи как это реализовать?

1 Ответ

1 голос
/ 09 февраля 2012

Ну, я думаю, что должно быть два решения:

Если вы используете виджеты Anchor или обычные привязки html в меню навигации, вы можете сделать это так же, как с обычным html:

Меню навигации : <a href='#myAnchor'>

Если вы действительно хотите использовать кнопки GWT, вам, вероятно, придется использовать Window.Location .Нечто подобное может работать тяжело, я сам не пробовал:

button.addClickHandler(new ClickHandler() {
    public void onClick(ClickEvent event) {
         Window.Location.assign('#myAnchor');
    }
});

В качестве альтернативы вы можете установить идентификатор якоря в вашей contentPanel <a id='myAnchor'> и использовать следующую функцию для прокрутки до якоря.

Element elem = DOM.getElementById('myAnchor');
    if (elem != null) {
        elem.scrollIntoView();
    }

Я рекомендую первый подход.

...