1

レガシー アプリケーションを GWT に移植する一環として、既存の JSP を GWT アプリ内に埋め込む必要があります。これらのページの多くは非常に長いため、メイン アプリのウィンドウ用とフレームのコンテンツ用の 2 つのスクロールバーが表示されます。内部スクロールバーを取り除き、メインウィンドウに通常のブラウザースクロールバーを表示したいのですが。レンダリングされたコンテンツ (スクロール可能な領域全体) の高さを取得できれば、これに合わせてフレームの高さを設定できますが、その情報をどこで取得できるかわかりません。

EDIT : 明確にするために、GWT はメインのアプリ ナビゲーションであり、iframe ( com.google.gwt.user.client.ui.Frame) を使用してレガシー コンテンツを埋め込みます。私がやろうとしているのは、ページを十分に大きくして、囲まれたフレームにスクロールバーが必要ないようにすることです。ホスト ページのみがスクロールします。フレームの「スクロール可能な領域」を決定する方法があれば、それに合うようにメイン ページのサイズを動的に変更できます。

2番目の編集:ジャックMの提案に多かれ少なかれ従いました。しかし、HTTPRequest を使用する代わりに RequestBuilder を使用したので、非常に簡単です。最初からフレームを使用するのではなく、HTML を手動で取得するというこの方法を使用したかったのですが、ホストされているページの URL を「修正」する必要があり、行き詰まっていました。ユーザーがホストされた HTML を「クリックスルー」した場合に機能するためには、パッチを適用する必要がある相対 URL のインスタンスが多数あります。これで履歴ナビゲーションを機能させるのも少し面倒です。コードを少し整理したら、人々がアクセスできる場所に投稿しようと思います。これは、既存のアプリを GWT に移行する人々にとって一般的な使用例であるに違いないと確信しているからです。

4

3 に答える 3

2

この問題を完全に解決するために考えられる最も簡単な方法は、 Frame 要素を使用するのではなく、HTMLPanelをHTTPRequestと組み合わせて使用​​することです。このアプローチでは RPC 呼び出しが複雑になりますが、HTMLPanel<div>はその中にコンテンツを持つシンプルなものです。そのため、JSP コンテンツを展開したり、JSP コンテンツと接触したりできます。最終的に、2 つのページがシームレスに統合されます。

JSON に関するGoogle 独自の例には、HTTP 要求を作成するための良い例があります。

于 2009-03-04T17:51:52.267 に答える
1

これを読んでください、それはあなたの問題の解決策になるでしょう

ウィンドウのサイズを取得し、JavaScript でスクロールを管理する方法について説明します。

于 2009-03-03T15:41:25.647 に答える
0

GWTを古いJSPに埋め込むのは理にかなっているのでしょうか?<div id = "for.gwt" />をJSPのどこかに配置し、JSをインポートします。

申し訳ありませんが、JSPをGWTに組み込む方法が明確ではありません。

フレーム内のdocument.body.clientHeightのようなものが役に立ちますか?

于 2009-02-26T20:05:57.393 に答える