【问题标题】:Remove The ScrollBar in the WebView Javafx [closed]删除 WebView Javafx 中的 ScrollBar [关闭]
【发布时间】:2013-03-08 01:21:12
【问题描述】:

如何在Javafx的WebView中自动移除滚动条?

当你点击“地籍”时会打开一个屏幕,这个屏幕是 javascript 的,因为滚动条而未配置,所以我们想删除它。

【问题讨论】:

    标签: java webview webkit scrollbar javafx


    【解决方案1】:

    通常对于ScrollPane,您会这样做:

    scrollPane.setHbarPolicy(ScrollBarPolicy.NEVER);
    scrollPane.setVbarPolicy(ScrollBarPolicy.NEVER);
    

    但是,WebView 中的滚动条不是您的 JavaFX UI 控件,而是显示网页的一部分。因此,您可以使用 CSS 控制它们:

    body {
        overflow-x: hidden;
        overflow-y: hidden;
    }
    

    您可以将其保存为 .css 并将其应用为用户样式表,类似 user style sheets in normal browsers,使用以下代码:

    webView.getEngine().setUserStyleSheetLocation("path/to/style.css");
    

    如果您创建的用户样式表是项目资源的一部分,那么您应该将其外部化:

    webView.getEngine().setUserStyleSheetLocation(getClass().getResource("/path/to/style.css").toExternalForm());
    

    【讨论】:

    • 我实际上是在创建一个浏览器,每次我在 javascript 中打开屏幕时,滚动条都会出现并取消配置屏幕。
    • 不确定用javascript打开屏幕是什么意思,您应该在原始问题中更清楚地描述您的问题
    • 当你点击“Cadastre”时会打开一个屏幕,这个屏幕是javascript的,因为滚动条而未配置,所以我们想删除它
    • 我无法从图片或您的 cmets 中找出任何内容,您是否尝试过按照所述将用户样式表应用于 web 视图?
    • 此代码将在 WebView 中加载的任何页面在加载后移除滚动条(即使跟随指向其他页面的链接):engine.getLoadWorker().stateProperty().addListener(new ChangeListener<State>() { public void changed(ObservableValue<? extends State> o, State old, final State state) { if (state == State.SUCCEEDED) { System.out.println("Page loaded: " + engine.getLocation()); engine.executeScript("document.style.overflow = 'hidden';"); } } });
    猜你喜欢
    • 2015-11-26
    • 2023-04-05
    • 2021-10-01
    • 1970-01-01
    • 2015-10-10
    • 1970-01-01
    • 1970-01-01
    • 2014-07-03
    • 2014-06-18
    相关资源
    最近更新 更多