使用 Java 的 ScriptEngine 或 WebEngine 类调用 DOM 对象
Calling DOM objects using Java's ScriptEngine or WebEngine classes
是否可以使用 Java 中的 ScriptEngine 或 WebEngine 类修改 html 元素?我尝试了以下方法:
/* theSite is a WebEngine object. Assume the id 'Email' is correct */
Element email=(Element) theSite.executeScript("document.getElementById('Email');");
email.setAttribute( "value", "navon.josh" );
我在一个例子中看到过这样的东西,但它似乎不起作用。我也试过这个:
final ScriptEngineManager manager = new ScriptEngineManager();
final ScriptEngine engine = manager.getEngineByName( "js" );
try {
engine.eval( "document.getElementById( 'Email' ).value = 'navon.josh'" );
} catch( ScriptException e) {
e.printStackTrace();
}
这也行不通。是因为该语句未链接到WebEngine吗?
要访问加载到 JavaFX 2 WebView 中的 html 的 DOM 模型,您可以使用WebEngine
API。 例如,下面是将侦听器添加到 HTML 文本区域的示例:
WebEngine webEngine = webView.getEngine();
webEngine.getLoadWorker().stateProperty().addListener(new ChangeListener<State>() {
public void changed(ObservableValue ov, State oldState, State newState) {
if (newState == Worker.State.SUCCEEDED) {
// note next classes are from org.w3c.dom domain
EventListener listener = new EventListener() {
public void handleEvent(Event ev) {
System.out.println(ev.getType());
}
};
Document doc = webEngine.getDocument();
Element el = doc.getElementById("textarea");
((EventTarget) el).addEventListener("keypress", listener, false);
}
}
});
webEngine.loadContent("<textarea id='textarea'></textarea>");
No. DOM 是浏览器的一部分,您没有浏览器。
相关文章:
- 在Angular中呈现DOM对象时,如何调用控制器中指定的函数
- 主干:视图's的呈现方法被调用,但DOM未更新
- 调用DOM提交方法时未激发jQuery提交事件
- 在jquery中是否有任何方法或位置可以编写从Dom中删除页面后调用的方法
- 直接在DOM事件处理程序中调用作用域函数的最短方法是什么
- 使用 jQuery 调用 DOM HTML
- 在 dom 完成加载 durandal 后调用函数
- 如何在构造函数中创建一个简单的DOM元素,并在调用时将其附加到元素中
- DOM:如何根据迭代器值设置元素宽度并在mouseover上调用函数
- Angular指令删除只调用一次的DOM元素
- 未捕获错误:NOT_FOUND_ERR:appendChild调用的DOM异常8
- 基于DOM插入承诺对API调用进行限制
- 即使使用jQuery DOM就绪事件,也无法调用null的方法addEventListener()
- 如何正确使用'$(这个)'以调用触发该事件的DOM元素
- 使用 Java 的 ScriptEngine 或 WebEngine 类调用 DOM 对象
- 在 jQuery 参数中调用 DOM
- 手动调用DOM Ready
- 调用DOM时,Javascript对象/函数不起作用
- jQuery无限递归当字符串调用DOM上添加的元素上的插件时
- 是否可以手动调用dom对象上的单击