[英]How to edit HTML page (in a webview) from Javafx without reloading the page?
這是我加載頁面的方式,我想在瀏覽器中對其進行修改
WebView browser = new WebView();
WebEngine engine = browser.getEngine();
String cwd = System.getProperty("user.dir");
String name = "\\src\\web\\index.html";
engine.loadContent(getPATHtoHTML(cwd + name));
DOM文檔可用並且可以修改。 這將更新WebView
的內容。 下面的示例只是將一些文本追加到正文,但是可以進行更復雜的操作:
@Override
public void start(Stage stage) {
WebView webView = new WebView();
WebEngine engine = webView.getEngine();
engine.loadContent("<html>"
+ "<body></body>"
+ "</html>");
TextField textField = new TextField();
Button button = new Button("add");
button.setOnAction(evt -> {
String text = textField.getText();
Document doc = engine.getDocument();
Element element = (Element) doc.getElementsByTagName("body").item(0);
element.appendChild(doc.createTextNode(text));
});
Scene scene = new Scene(new VBox(webView, textField, button));
stage.setScene(scene);
stage.show();
}
如果您還想修改文件,則還可以將結果輸出到文件中:
DOMSource domSource = new DOMSource(engine.getDocument());
StreamResult result = new StreamResult(outputFile);
TransformerFactory tf = TransformerFactory.newInstance();
Transformer transformer = tf.newTransformer();
transformer.setOutputProperty(OutputKeys.METHOD, "html");
transformer.transform(domSource, result);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.