我在
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" + "};"); });
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。