0
이럴 수는 없겠지만. . . javafx.scene.web.WebView에 javafx.scene.Node를 추가 할 수있는 방법이 있는지 알고있는 사람이 있습니까?WebView에 노드를 추가 할 수 있습니까?
내 관심사는 노드가 DOM 내에서 볼 수 있다는 것입니다. 이상적으로 그것은 div에서 dom으로 취급 될 것이지만 그것은 나의 주요 관심 사항이 아닙니다.
이럴 수는 없겠지만. . . javafx.scene.web.WebView에 javafx.scene.Node를 추가 할 수있는 방법이 있는지 알고있는 사람이 있습니까?WebView에 노드를 추가 할 수 있습니까?
내 관심사는 노드가 DOM 내에서 볼 수 있다는 것입니다. 이상적으로 그것은 div에서 dom으로 취급 될 것이지만 그것은 나의 주요 관심 사항이 아닙니다.
dom과 div에 관해 이야기 할 때, 이들은 HTML 구성 요소와 태그입니다. 노드는 Java입니다. html로 직접 "있는 그대로"표시되거나 처리 될 수 없습니다. 당신은 그것을 해소 할 수 그러나 :
demo.html가@Override
public void start(Stage primaryStage) {
WebView webView = new WebView();
final WebEngine webEngine = webView.getEngine();
webEngine.load(getClass().getResource("demo.html").toExternalForm());
webEngine.getLoadWorker().stateProperty().addListener(new ChangeListener<Worker.State>() {
@Override
public void changed(ObservableValue<? extends Worker.State> ov, Worker.State oldState, Worker.State newState) {
if (newState == Worker.State.SUCCEEDED) {
JSObject window = (JSObject) webEngine.executeScript("window");
window.setMember("myJavaFXButton", new Button("My JavaFX Button"));
}
}
});
StackPane root = new StackPane();
root.getChildren().addAll(webView);
Scene scene = new Scene(root, 300, 250);
primaryStage.setScene(scene);
primaryStage.show();
}
,
<div id="content">content</div>
<button onclick="document.getElementById('content').innerHTML = myJavaFXButton.getText();">
Get my lovely JavaFX button's text
</button>