JavaFx2 にローカルの html ファイルをロードしました。Web ビュー ページをスクロールしています。ページの最後に到達したときに警告メッセージを受け取る必要があります。
どうやってするか?
JavaFx2 にローカルの html ファイルをロードしました。Web ビュー ページをスクロールしています。ページの最後に到達したときに警告メッセージを受け取る必要があります。
どうやってするか?
あなたはウェブビューにいるので、ロードされたページに次のコードを挿入して、javascriptを使用してそれを行うことができます。
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 を使用して水平スクロール バーを手動で無効にすることをお勧めします。
また、関連する注意事項として、何らかの理由で全画面表示の場合WebView
、maxY
は常に になります0
。現在、回避策はないようです