В настоящее время я открываю HTML-страницу в веб-просмотре. Код выглядит следующим образом:
WebView webView = new WebView();
WebEngine webEngine = webView.getEngine();
URL resource = getClass().getClassLoader().getResource("test.htm");
webEngine.load( resource.toString() );
Scene scene = new Scene(webView,width,height);
primaryStage.setScene(scene);
primaryStage.setAlwaysOnTop(true);
primaryStage.setFullScreen(true);
primaryStage.setFullScreenExitHint("");
Platform.setImplicitExit(false);
System.out.println("Starting the webview....");
primaryStage.show();
Я хочу отобразить значение на странице HTML. Может ли кто-нибудь предложить мне, как я могу передать значение из вышеуказанного кода Java при загрузке HTML-страницы.
@ Алекс, я не думаю, что это связано. Эти вопросы и ответы касаются FXML и того, как передавать информацию между различными экземплярами контроллера. У ОП есть WebView
, и он хочет манипулировать веб-страницей с Java.
@Manish Загляните в WebEngine#executeScript(String).
@Alex Алекс, я просто хочу ввести значение, которое я могу распечатать на веб-странице.
Вы можете использовать WebEngine#executeScript для установки любых объектов или значений javascript на веб-странице. Но вам все равно нужно написать собственный javascript, который считывает это значение и отображает его внутри DOM. Что-то вдоль этого
engine.executeScript("document.getElementByid('myDiv').innerHTML = '" + myValue + "'");
Другой способ, если у вас есть полный контроль над HTML, заключается в том, чтобы проанализировать HTML с помощью String.replace и заменить заполнитель внутри вашего HTML значением, которое вы хотите иметь.
String htmlContent = .../* read HTML file as string */;
webEngine.loadContent(htmlContent.replace("{myVar}", myValue), "text/html");
Это может быть расширено с помощью различных фреймворков, таких как Apache Commons StringSubtututor. https://commons.apache.org/proper/commons-text/apidocs/org/apache/commons/text/StringSubstitutor.html
Пробовал это, но html-страница по-прежнему показывает {myVar}, она не заменяется myValue
ну, вам нужно поместить строку {myVar} в ваш HTML-файл: D
да, это у меня есть на моей html-странице "номер: <b>{myVar}</b>"
хорошо, у resource.toString есть путь к файлу, а не содержимое. Позвольте мне разобраться в этом.
Вам нужно загрузить html-файл в виде строки, а затем использовать .loadContent()
Вам это помогает?stackoverflow.com/questions/14187963/…