gpt4 book ai didi

javascript - JxBrowser onScriptContextCreated 未被调用

转载 作者:行者123 更新时间:2023-12-02 12:09:30 24 4
gpt4 key购买 nike

我正在尝试使用 JxBrowser 设置 Java Javascript 桥。onScriptContextCreated 方法没有被调用,我不确定为什么。

我的 Java 应用程序中嵌入了一个浏览器,当我单击按钮时,会出现一个窗口,显示“howdy”,但“hello”永远不会打印到 java 控制台。我在 onScriptContextCreated 方法中添加了调试行,但它从未被命中。

这是Java代码

    webBrowser.addScriptContextListener(new ScriptContextAdapter() {       
@Override
public void onScriptContextCreated(ScriptContextEvent event) {
Browser browser = event.getBrowser();

JSValue window = browser.executeJavaScriptAndReturnValue("window");
System.out.println("Setting property");
window.asObject().setProperty("sendNSCommand", new JSFunctionCallback() {

@Override
public Object invoke(Object... os) {
String command = (String) os[0];
System.out.println("Command from JavaScript: " + command);
return null;
}
});
}
});

这是我的示例网页

<html>
<head>
<script>
function callMe() {
sendNSCommand2("howdy");
sendNSCommand("hello");

}

function sendNSCommand2(x) {
window.alert(x);
}
</script>
</head>
<body>
<input type="button" value="test" onClick="callMe()" />
</body>
</html>

最佳答案

看起来此代码示例工作正常。在本地环境中启动它后,它将“设置属性”行打印到 Java 控制台中。当我单击“测试”按钮时,会出现“howdy”对话框。当我单击此对话框中的“确定”按钮时,“来自 JavaScript 的命令:hello”行将打印到 Java 控制台中。

关于javascript - JxBrowser onScriptContextCreated 未被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46650705/

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