當我使用javafx.scene.web.WebView
加載網站/ html時,該網站似乎受到了我的場景自定義樣式的影響。演示問題的最小示例。使WebView在JavaFX中忽略場景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();
他們都沒有工作。我認爲可以使這項工作(還沒有嘗試過)的一種方法是在不使用相同場景的子窗口中打開webview,但是我希望將webview嵌入到我現有的應用程序視圖中所以這個選項將是我的最後手段,我寧願避免它。