作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 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/
我正在尝试使用 JxBrowser 设置 Java Javascript 桥。onScriptContextCreated 方法没有被调用,我不确定为什么。 我的 Java 应用程序中嵌入了一个浏览器
我是一名优秀的程序员,十分优秀!