当前位置: 首页 > 知识库问答 >
问题:

JavaFX8 WebEngine:如何将console.log()从javascript转换为Java中的System.out?

史淳
2023-03-14

我使用JavaFX和JavaFX WebEngine中的javascript引擎来开发应用程序。我希望得到javascript的反馈,以供调试之用。WebEngine内部的控制台输出发生了什么?有没有什么方法可以访问它,或者用Java重定向到System.out?

共有1个答案

朱俊雅
2023-03-14

以下代码将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" +
        "};");
});
 类似资料:
  • 问题内容: 好的,所以我试图用“,”分割字符串,它们不在’[‘或’]’内部。我有一个适用于JavaScript的RegEx,但无法将其转换为Java语法。 JS RegEX: 例句: 它在http://refiddle.com上运行良好,但是当我尝试在Java中(在Eclipse下)使用RegEx时,出现错误消息: 索引10附近的未封闭字符类,(?![^ [] *]) 我所做的就是删除开头的“ /

  • 问题内容: 有没有办法将JavaScript正则表达式转换为Java安全正则表达式? 上面的语句给了我错误: 我对正则表达式不是很熟悉,因此我可以使用一些指导。 谢谢! 问题答案: 摆脱正斜杠。您不需要Java中的代码。而且,Java的正则表达式风格无法识别诸如和的开关。这些由中的常量控制。 在Java世界中唯一有意义的Javascript正则表达式开关是和。它们映射到和(您可以在从类中创建正则表

  • 问题内容: 我是Java的新手,想知道double转换为int cast如何工作吗?我知道,只需将低32位转换为int就很容易了,但是将double(64位)转换为int(32位)呢?来自二进制的double中的那64位是Double- precision浮点格式(Mantissa),那么它如何在内部转换为int? 问题答案: 所有这些都记录在JLS的5.1.3节中。 第一步,将浮点数转换为lon

  • 问题内容: 我需要转换为搜索的内容,但找不到任何内容。那你可以帮我解决这个问题吗? 编辑: 我在GWT屏幕上执行此转换过程。我在屏幕上,使用它的方法可以给我带来价值。因此,我应该将此值放入具有Date类型的对象的属性中。 希望我的编辑会更加清晰。 编辑2: 这行是我的问题的解决方案: 问题答案: 日期转换的最佳方法是使用以毫秒为单位的时间(UTC)。JS Date对象和java.util.Date

  • 问题内容: 我想转换成JavaScript,该怎么办? 我一直在寻找它,但没有发现任何东西。 所以, 1px→? 大众 谢谢。 问题答案: 1px =(100vw / [document.documentElement.clientWidth] px) 例如-如果您的视口很宽(按定义等于),则 1px =(100vw / 500px)= 0.2vw 我曾经以排除任何滚动条的计算

  • 问题内容: 我想将json字符串转换为javascript中的yaml格式。我从过去两天开始尝试在Google上找到任何解决方案或库。有适用于Java的答案,但不适用于javascript。 假设我有这样的json字符串: 转换为yaml: 有一个在线转换器http://www.json2yaml.com/,但是如何在javascript中转换成它。 问题答案: YAML是JSON的超集。由于任何