javafx - JavaFX WebView 在 org.w3c.dom.Element 中获取/设置内部/外部 HTML;
问题描述
我正在使用带有 webview 的 JavaFX HTMLEditor。我有以下对象(名称不言自明)
private HTMLEditor htmlEditor;
// for manipulating the html structure of the editor
WebView webView;
WebEngine webEngine;
// for accessing the document
HTMLDocumentImpl htmlDocImpl;
我试图避免构建大字符串以将长函数传递给
webEngine.executeScript();
因此,我一直在通过向 webEngine 添加侦听器来从文档中获取 HTML,将文档存储在 htmlDocImpl 中,然后以这种方式访问 DOM,例如,这会向 webEngine 添加鼠标侦听器,此时我设置了 htmlDocImpl
webEngine.documentProperty().addListener((observable, oldDoc, newDoc) -> {
htmlDocImpl = (HTMLDocumentImpl) newDoc;
htmlDocImpl.setOnmousemove(event -> {
MouseEvent mouseE = (MouseEvent) event;
activeMouseElem = htmlDocImpl.elementFromPoint(
(int)mouseE.getClientX(),
(int)mouseE.getClientY()
);
//System.out.println(activeMouseElem.toString());
});
});
这让我可以访问 webEngine 中的 DOM。然后我使用这些对象操作节点:
org.w3c.dom.Element;
org.w3c.dom.Node;
问题是,我不知道如何使用这种方法来获取或设置这些对象的内部 HTML。我可以做一些事情,比如添加孩子、删除元素等,但我需要能够设置他们的 HTML!我找不到任何方法可以做到这一点。我想直接修改 HTML 的唯一方法是在 .executeScript() 中使用 Javascript。
如果有人能告诉我这是如何完成的,我将不胜感激。谢谢你。
解决方案
推荐阅读
- jquery - jQuery Validate 插件自定义消息仅显示在输入数组的第一个输入上
- javascript - Node JS - 文件生成器架构
- sql - oracle 12c中如何创建用户
- powershell - 如何在对象中保存 .csv 路径?
- azure - 从源代码管理部署时,Azure 函数“错误:函数运行时无法启动”
- javascript - 访问导出模块 nodeJS 中的函数
- c++ - 如何按流行顺序输出子字符串的频率?
- python - Odoo V10 - 检索相同模型的先前记录的值
- javascript - 如何在javascript中按第一个单词A然后B对字符串对象数组进行排序
- html - 共享元标记 og:facebook 的图像正在选择其他图像,然后定义