执行javascript并返回响应(JavaFX/Swing)
Execute javascript and return response (JavaFX/Swing)
我需要从java运行一个javascript函数,并将响应保存在一个变量中。我写了以下代码,但它不起作用:
public Object execute(String value) {
SwingUtilities.invokeLater(() -> {
new JFXPanel();
Platform.runLater(() -> {
WebView browser = new WebView();
WebEngine webEngine = browser.getEngine();
webEngine.setJavaScriptEnabled(true);
Object response = webEngine.executeScript(value);
Platform.exit();
});
});
return response;
}
我之所以使用"WebView",是因为我的javascript代码使用了"window"、"document"等函数,而库作为"ScriptEngineManager"在我的情况下不起作用。
我该如何解决这个问题?我的代码可以工作,但在executeScript
结束之前会返回"响应"。
您从未在WebView中设置任何内容。你需要调用类似的东西
browser.getEngine().load(url)
或
browser.getEngine().loadContent(html)
您需要至少提供一个最小的html页面才能访问JS对象,如窗口或文档。在访问Javascript对象之前,您必须等待WebEngine的状态完成加载。
相关文章:
- JavaFX+WebView/Javascript:setTimeOut不起作用调用堆栈来自Java
- 在JavaFX的String中包含本地javascript源
- JavaFX WebView 弹出处理程序未尝试加载页面
- 如何在webview(javaFX)中使用javascript(bridge)调用的executeScript
- JavaFX Webview与Android的兼容性如何'的Web视图
- JavaFX+Javascript:如何将Java对象注入AMD模块
- 在JavaFX Webview中自动单击按钮
- 禁止JavaScript在JavaFX WebView中运行
- 带Swing的超链接
- JavaFX - 通过输入更新 WebView 中的变量值
- 从 JavaFX Web 视图调用 Java 方法
- 无法在小程序中使用 swing UI - 调用公共方法
- JavaScript图表库是否可定制或与JavaFX兼容
- 从 JavaScript 到 JavaFX 进行 Upcall
- 在Java/Swing中,为什么我们使用类作为动作侦听器
- 在JavaFX中使用jQuery
- 在 WebView javafx 中使用画布打开 html 文件
- 如何在GWT(或Java AWT Swing)中使用相同的事件处理程序对相同类型的多个对象执行相同的功能
- 来自 JavaScript 的 JavaFX WebView 调用不起作用
- 执行javascript并返回响应(JavaFX/Swing)