我在
JavaFX WebEngine中使用JavaFX和
JavaScript引擎开发应用程序.我想从javascript获取反馈以进行调试. WebEngine中的控制台输出会发生什么?有没有办法可以访问它,或者在java中重定向到System.out?
解决方法
以下代码将console.log()重定向到JavaBridge.log():
import netscape.javascript.JSObject; public class JavaBridge { public void log(String text) { System.out.println(text); } } [...] webEngine.getLoadWorker().stateProperty().addListener((observable,oldValue,newValue) -> { JSObject window = (JSObject) webEngine.executeScript("window"); JavaBridge bridge = new JavaBridge(); window.setMember("java",bridge); webEngine.executeScript("console.log = function(message)\n" + "{\n" + " java.log(message);\n" + "};"); });