gpt4 book ai didi

webview - JavaFX 8 WebEngine:如何在Java中将console.log()从javascript获取到System.out?

转载 作者:行者123 更新时间:2023-12-03 13:44:41 41 4
gpt4 key购买 nike

我同时使用JavaFX和JavaFX WebEngine中的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);
}
}

// Maintain a strong reference to prevent garbage collection:
// https://bugs.openjdk.java.net/browse/JDK-8154127
private final JavaBridge bridge = new JavaBridge();

[...]

webEngine.getLoadWorker().stateProperty().addListener((observable, oldValue, newValue) ->
{
JSObject window = (JSObject) webEngine.executeScript("window");
window.setMember("java", bridge);
webEngine.executeScript("console.log = function(message)\n" +
"{\n" +
" java.log(message);\n" +
"};");
});

关于webview - JavaFX 8 WebEngine:如何在Java中将console.log()从javascript获取到System.out?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28687640/

41 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com