GWT — RichTextArea — ScrollTo

Если у меня есть RichTextArea, как это:

RichTextArea rta = new RichTextArea();
rta.setHTML("<p id=\"foo\">Foo</p>....<p id=\"bar\">Bar</p>");

Если я расширим класс RichTextArea, как правильно (в кросс-браузерном режиме) написать метод scrollTo()?

Ex:

class RichTextAreaExt extends RichTextArea {
   ...
   /**
    * This method should be called only when the widget has properly been attached
    * @param id String the HTML element id within the RichTextArea to scroll to
    */
   public native void scrollToElement(String id) /*-{
       var cWin = [email protected]::getElement()().contentWindow;
       var el = cWin.document.getElementById(id);
       if (el) {
           cWin.scrollTo(el.offsetLeft,el.offsetTop);
       }
   }-*/;       ...
}

Кажется, это работает в некоторых браузерах, но у меня нет возможности протестировать их все, так что комментарии приветствуются!

Спасибо!


person Yanick Rochon    schedule 02.06.2010    source источник


Ответы (1)


http://code.google.com/p/doctype/wiki/WindowScrollMethod - кажется, все в порядке в браузерах. http://code.google.com/p/doctype/wiki/ArticleOffsetLeftAndFriends - кажется нелогичным.

person Gipsy King    schedule 02.06.2010
comment
window.scroll() кажется псевдонимом window.scrollTo() (w3schools.com/jsref /met_win_scrollto.asp). Что касается второй ссылки, если я понимаю статью, если у меня нет странного макета внутри моей RichTextArea, у меня не должно возникнуть особых проблем с прокруткой (рядом) до нужного элемента. - person Yanick Rochon; 03.06.2010
comment
@Yanick Rochon: Я думаю, вам придется либо самостоятельно протестировать offsetleft и top в разных браузерах, либо использовать какой-нибудь фреймворк, например jquery (в вашем iframe). Если вы найдете работающее решение, было бы неплохо, если бы вы разместили его здесь. - person Gipsy King; 03.06.2010
comment
закрыть этот вопрос сейчас. Спасибо за ваш ответ - person Yanick Rochon; 15.09.2010