我正在使用JxBrowser 6.1.1并成功在CELL_TYPE_STRING
处理程序的JsContext
中注册Java对象。问题是当JxBrowser加载的页面中运行第一个onFinishLoadingFrame
时,该属性尚不可用。
工作电话如下:
browser.executeJavaScriptAndReturnValue(" window")。asObject()。setProperty(" api",api);
当我在新的JavaScript
处理程序中执行相同操作时,程序将暂停执行:
onScriptContextCreated
完整的代码是JSValue jsWindow = ...:
JSValue jsWindow = browser.executeJavaScriptAndReturnValue("window");
我想 client.browser.addScriptContextListener(new ScriptContextAdapter() {
@Override
public void onScriptContextCreated(ScriptContextEvent event) {
Browser browser = event.getBrowser();
JSValue jsWindow = browser.executeJavaScriptAndReturnValue("window");
JSObject windowObject = jsWindow.asObject();
windowObject.setProperty("api", client.getApi());
}
});
属性还没有。
有没有办法通过window
事件实现这一目标,还是有不同的方法来实现这一目标?
在下面提出的单独线程中启动时,代码也可以正常工作。但问题仍然是这段代码比浏览器中的第一个JavaScript运行得晚。
onScriptContextCreated