【发布时间】:2013-03-08 01:21:12
【问题描述】:
如何在Javafx的WebView中自动移除滚动条?
当你点击“地籍”时会打开一个屏幕,这个屏幕是 javascript 的,因为滚动条而未配置,所以我们想删除它。
【问题讨论】:
标签: java webview webkit scrollbar javafx
如何在Javafx的WebView中自动移除滚动条?
当你点击“地籍”时会打开一个屏幕,这个屏幕是 javascript 的,因为滚动条而未配置,所以我们想删除它。
【问题讨论】:
标签: java webview webkit scrollbar javafx
通常对于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());
【讨论】:
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';"); } } });