gwt锚标签没有锚定

时间:2009-10-19 00:35:52

标签: gwt anchor

为什么浏览器不能滚动到锚点?
网址: http://localhost:8080/index.html#myAnchor3

this.anchor1.setName("myAnchor1");
this.add(this.anchor1);
this.anchor2.setName("myAnchor2");
this.add(this.anchor2);
this.anchor3.setName("myAnchor3");
this.add(this.anchor3);

是否因为锚点是在页面加载完成后创建的,所以当浏览器尝试滚动到它时,浏览器看不到锚点?

3 个答案:

答案 0 :(得分:1)

试试这个:

this.anchor.setName("myAnchor");
this.add(this.anchor);
location.hash = '#myAnchor';

是的,你是对的,你的锚是在页面加载后创建/插入的,所以...... [/ p>

答案 1 :(得分:1)

您可以尝试使用Element.scrollIntoView(),它不仅会滚动窗口,而且还会保存包含该元素的DOM层次结构中的任何可滚动容器。

答案 2 :(得分:1)

必须覆盖onLoad方法,并在那里调用scrollIntoView,否则它会尝试滚动到尚未添加到DOM的对象。

public class Foo extends Widget
{
  Foo(){
  }

  @Override
  protected void onLoad(){
    super.onLoad();
    getElement().scrollIntoView();
  }
}