4

次の問題が発生しています-JavaScriptを介してコンテンツドキュメントを変更(テキストを挿入)するiframeをロードするWebビューがあります。問題は、コンテンツが多すぎる場合(Webビューがスクロール可能になる場合)、およびユーザーがスクロールする場合、タッチイベントが正しく処理されないことです。つまり、ユーザーがどこかをタップすると、カーソルが不適切な位置に表示されるか、表示されません。まったく表示されません。この動作は、iframeが存在しない場合は観察されません。

この問題を解決する方法についてのアイデアは大歓迎です。

4

2 に答える 2

2

この問題は、二重スクロールが原因である可能性があります。

iFrameには処理できるよりも多くのコンテンツがあるため、タッチイベントを使用してiFrameをスクロールします。ただし、Webビュー自体もスクロールできるため、奇妙な動作が発生する可能性があります。

iFrameコンテンツが端に達したときに何が起こるかを考えてください(ユーザーがiFrameを上下にスクロールしました)。ユーザーがiFrameをスクロールし続けるとどうなりますか?それは何もせずにイベントを食べるべきですか?iFrameスクロールコンテンツをバウンスしますか?イベントをWebビューに渡して、代わりにスクロールできるようにしますか?

これはあいまいな状況です。Androidの反応方法は、さまざまなタッチジェスチャに基づいて一貫していない場合があり、Androidのバージョンごとに異なる場合もあります。

iFrameを避けて、Webビューのコンテンツを直接変更するか、iFrameに100%の高さと100%の幅を指定して、Webビュー全体を占めるようにすることをお勧めします。

これにより、スクロールの競合が回避され、Androidはカーソルを置く場所について混乱するのを防ぐことができます。

于 2012-05-20T00:35:12.560 に答える
1
  1. iframeの高さを固定します。<iframe ... scrolling="no" height="150px">

  2. iframe内のコンテンツにiScrollを適用divします。

iScrollはここから入手できます: https ://github.com/cubiq/iscroll

これが実際のiScrollのデモです:http: //cubiq.org/dropbox/iscroll4/examples/simple/

于 2012-05-13T18:41:33.490 に答える