как избавиться от двойных полос прокрутки на внутреннем фрейме приложения GWT - PullRequest
1 голос
/ 26 февраля 2009

В рамках переноса устаревшего приложения на GWT нам необходимо встроить наши существующие JSP в наше приложение GWT. Многие из этих страниц довольно длинные, что приводит к двойной полосе прокрутки - одна для окна основного приложения, а вторая - для содержимого фрейма. Я хотел бы избавиться от внутренней полосы прокрутки и просто иметь обычную полосу прокрутки браузера в главном окне. Если бы я мог получить высоту отображаемого содержимого (всю прокручиваемую область), я мог бы просто установить высоту на моем фрейме, чтобы соответствовать этому, но я не вижу, где я мог бы получить эту информацию.

РЕДАКТИРОВАТЬ : чтобы уточнить, GWT является основной навигацией приложения и использует встроенные фреймы (com.google.gwt.user.client.ui.Frame) для встраивания устаревшего контента. Я пытаюсь сделать страницу достаточно большой, чтобы во вложенном фрейме не было полос прокрутки; прокручивается только страница хоста. Если есть какой-либо способ определить «прокручиваемую область» фрейма, я мог бы динамически изменить размер главной страницы, чтобы соответствовать ей.

2-е РЕДАКТИРОВАНИЕ : Я оказался более или менее последовал совету Джека М. Но вместо использования HTTPRequest я использовал RequestBuilder, что упрощает процесс. Я хотел пойти по этому пути, захватывая HTML-код вручную, а не использовать фрейм с самого начала, но он оказался в тупике из-за необходимости «исправить» URL-адреса размещенных страниц; Есть много примеров относительных URL-адресов, которые должны быть исправлены, чтобы работать, если пользователь «щелкает» по размещенному HTML. Заставить навигацию по истории работать с этим также немного болезненно. Как только я немного почистил свой код, я постараюсь опубликовать его где-нибудь, где люди смогут его найти, потому что я уверен, что это должно быть распространенным случаем для людей, которые переносят существующие приложения в GWT.

Ответы [ 3 ]

2 голосов
/ 04 марта 2009

Самый простой способ, который я могу придумать, чтобы полностью решить эту проблему - это не использовать элемент Frame, а HTMLPanel в сочетании с HTTPRequest . Этот подход усложняет вызов RPC, но HTMLPanel - это простой <div>, в котором есть контент. Таким образом, он может расширяться и / или связываться с вашим контентом JSP. Конечным результатом будет бесшовная интеграция двух страниц.

Пример Google для JSON содержит хорошие примеры для выполнения HTTP-запроса.

1 голос
/ 03 марта 2009

Прочтите это, скорее всего, это решение вашей проблемы

Объясняет, как вы можете получить размер окна и управлять его прокруткой в ​​JavaScript.

0 голосов
/ 26 февраля 2009

Может быть, имеет смысл встраивать GWT в старую JSP? Поместите

где-нибудь в JSP и импортируйте JS.

Непонятно, как вы встраиваете JSP в GWT, извините.

Интересно, что-то вроде document.body.clientHeight в кадре поможет вам?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...