2

JavaFx2 にローカルの html ファイルをロードしました。Web ビュー ページをスクロールしています。ページの最後に到達したときに警告メッセージを受け取る必要があります。

どうやってするか?

4

1 に答える 1

2

あなたはウェブビューにいるので、ロードされたページに次のコードを挿入して、

setInterval(function() {
    var y = (window.pageYOffset !== undefined) ? window.pageYOffset : (document.documentElement || document.body.parentNode || document.body).scrollTop;
    y -= 12;
    var maxY = document.body.scrollHeight -  window.innerHeight;
    if (y == maxY)
    {
        alert('bottom');
    }
}, 200);

これにより、200 ミリ秒ごとに一番下までスクロールしたかどうかがチェックされます。標準の JavaScriptalert()は、現在の JavaFX 2.x では使用できないことに注意してください (ただし、バージョン 3.0 で使用する予定です)。次のように自分で処理する必要があります。

webview.getEngine().setOnAlert(new EventHandler<WebEvent<String>>() {
        @Override
        public void handle(WebEvent<String> e)
        {
            System.out.println("Alert: " + e.getData());
        }
    });

これはAlert: bottom、一番下までスクロールすると標準出力に出力されます。未検証。テスト済みで動作しています。

y -= 12: これは、水平スクロール バーが表示されているかどうかを説明するためのものです。12 はスクロール バーの標準の高さです (CSS でスクロール バーのスタイルを設定する場合は、これを変更する必要があります)。また、水平スクロール バーが表示されない場合は、その行を完全に削除する必要があります。そのため、CSS を使用して水平スクロール バーを手動で無効にすることをお勧めします。

また、関連する注意事項として、何らかの理由で全画面表示の場合WebViewmaxYは常に になります0。現在、回避策はないようです

于 2012-12-20T12:06:21.660 に答える