Как перейти к идентификатору div в GWT - PullRequest
2 голосов
/ 12 октября 2011

У меня есть веб-страница с iframe, в которой запущено приложение gwt.Веб-страница имеет <div id="head">.Невозможно выполнить прокрутку в iframe (предназначено), поэтому веб-страница имеет, например, высоту 1000 пикселей.В самом низу есть кнопка, и я хочу, чтобы, когда кто-то нажимал на эту кнопку (примечание: кнопка находится в приложении gwt), я хочу прокрутить до самого верха.

Это означает, что iframe нуждается взаставить родительское окно прокручиваться к вершине.Я попытался сделать это с помощью функции jsni:

    public static native void scrollToTop()  /*-{
        $wnd.top.scrollTo(0,0);
    }-*/;

Но это не сработало.Так что моя новая идея - прокрутить до div id "header".Кто-нибудь знает, как этого добиться?

Я попробовал это так:

document.getElementById('header').scrollIntoView();

Но это, похоже, не работает (потому что это должно быть в JSNI-манере?).

Спасибо за любые входные данные!

Ответы [ 2 ]

5 голосов
/ 12 октября 2011

Сбой, потому что GWT работает в iframe, поэтому document ссылается на iframe GWT, а не на вашу "страницу хоста HTML".Вы должны использовать $doc в JSNI для ссылки на документ (точно так же, как $wnd вместо window).

Но вам на самом деле не нужен JSNI для этого;старый добрый Java / GWT сделает:

Document.get().getElementById("header").scrollIntoView();
0 голосов
/ 12 октября 2011

Наконец я нашел решение. Вы должны установить якорь в верхней части вашего сайта (сайт внутри iframe). Пожалуйста, посмотрите мои другие сообщения для более подробной информации.

P.S. Я надеюсь, что вы видите важность этого поста и оцените его. Это сэкономит много времени другим людям.

...