javafx.scene.web.WebView
を使用してsite/htmlをロードすると、そのシーンは私のシーンのカスタムスタイリングの影響を受けるようです。この問題を示すための最小限の例。JavaFXのWebViewでシーンCSSを無視する
Main.java
public class Main extends Application {
@Override
public void start(Stage primaryStage) throws Exception {
VBox root = new VBox();
primaryStage.setScene(new Scene(root, 900, 900));
String css = Main.class.getResource("/test.css").toExternalForm();
primaryStage.getScene().getStylesheets().add(css);
WebView webView = new WebView();
root.getChildren().add(webView);
webView.getEngine().load("http://google.pl");
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
test.css
.text-area,
.text-field {
-fx-background-color: red;
}
私はもちろんのwebview.getEngine().dontInheritStyles()
のような方法をご希望のどれもありません、その結果、私はできませんでしたそうでなければそれを行う方法を見つける。試しました:
webView.getStylesheets().clear();
webView.setStyle(null);
webView.getStyleClass().clear();
どれも働いていませんでした。私がこの仕事をすることができたと思う方法の1つは、同じシーンを使わないサブウィンドウでwebviewを開くことですが、私は既存のアプリケーションビューに埋め込むことを望みますそのオプションは私の最後の手段となり、むしろそれを避けます。