2012-03-13 2 views
0

У меня есть страница с большим количеством ссылок hrefs на произвольные точки страницы, скажем, когда я нажимаю ссылку <a href="#b">B</a> Я должен перейти к точке B. однако я не хочу обновлять стек истории когда я нажимаю ссылку, которая по умолчанию будет udpate до /index.html#B. Я могу использовать g: Якорь вместо гиперссылки, чтобы избежать обновления стека истории, но как я могу действительно перейти к точке B на моей странице? мой код выглядит следующим образом: index.ui.xmlgwt anchor without history history stack

 <g:Anchor ui:field="_a">A</g:Anchor> 
     ... 
     <a name="a"></a> 
     <h3>Point A</h3> 
     <a name="b"></a> 
     <h3>Point B</h3> 
     ... 

index.java

@UiField 
Anchor _a; 
@UiHandler("_a") 
void onClickA(ClickEvent e){ 
    //how to goto point A in the page ?? 
} 

ответ

0

Может быть, вы можете использовать метод Window.scrollTo()?

+0

я пытался, но он не работает (не прокручивать все): onClickA (ClickEvent е) {Элемент aElem = container.getElementById ("a"); if (aElem! = null) {Window.scrollTo (aElem.getAbsoluteLeft(), aElem.getAbsoluteTop();}} – user468587

0

Что вы можете сделать, это позвонить: _a.getElement().scrollIntoView();. Это прокрутите до якоря так, чтобы он был, по крайней мере, видимым.