繁体   English   中英

将WebView中DOM节点的内容绑定到StringProperty

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM