滚动时在javafx Web视图中查找结束页面

时间:2012-12-17 12:51:47

标签: javafx-2

我在JavaFx2中加载了本地html文件。我正在滚动网页浏览页面。当我到达页面末尾时,我需要收到警告信息。

怎么做?

1 个答案:

答案 0 :(得分: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毫秒向下滚动到底部。 请注意,标准javascript alert()在当前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。目前似乎没有解决方法