如何在第一个JavaScript之前在JxBrowser中注册Java对象

时间:2016-02-14 08:49:18

标签: jxbrowser

我正在使用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

0 个答案:

没有答案