[英]Bind the content of a DOM node in WebView to StringProperty
我一直在尝试将WebView中html文档中的DOM节点的内容绑定到StringProperty。 我所拥有的是这样的:
final String html = "<!DOCTYPE html><html><head><meta charset=\"UTF-8\"><script>function get(){return document.getElementsById('code')[0];}</script><style>body{font-family:\"Monospaced\";}</style></head><body><pre id=\"code\"></pre></body></html>";
engine.loadContent(html);
final JSObject pre = (JSObject) engine.executeScript("get()"); // Defined in html
property.addListener((ob, o, n) -> {
pre.setMember("innerHTML", n);
});
当我执行程序并修改StringProperty时,出现如下异常:
线程“ JavaFX应用程序线程” netscape.javascript.JSException中的异常:ReferenceError:找不到变量:get
我不确定自己走的路是否正确。 似乎应该可以侦听属性中的更改,然后使用javascript将这些更改推送到文档中。 难道我做错了什么?
Javascript中没有getElementsById
函数。 ID是唯一的。 使用getElementById
(不是元素,也没有数组符号),或者如果需要多个选择器,则使用另一个选择器。
基于您的代码的JSFiddle示例: https ://jsfiddle.net/jkennaly/db88u9f3/3/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.