javascript - JXBrowser JSFunctionCallback 和 IFrame

标签 javascript java iframe jxbrowser

我正在将我的 jxbrowser 集成从 4.9x 移植到 6.11.x,我遇到了 JavaScript - JavaBridgeIFrame 的问题。我使用以下代码正确注册,并在主页中从 js 调用该函数时按预期工作。但是当从 iframe 内的 js 调用该函数时不起作用。

    browser.addScriptContextListener(new ScriptContextAdapter() {

        @Override
        public void onScriptContextCreated(ScriptContextEvent event) {
            final Browser browser = event.getBrowser();
            JSValue window = browser.executeJavaScriptAndReturnValue("window");
            window.asObject().setProperty("resolveMsg", new JSFunctionCallback() {

                @Override
                public Object invoke(Object... params) {

                    String msgId = (String) params[0];

                    Builder builder = WrLocMsg.builder(msgId);

                    return builder.buildOriginalMessage();
                }
            });
        }
    });

最佳答案

通过恢复窗口以这种方式解决:

JSValue window = browser.executeJavaScriptAndReturnValue(event.getJSContext().getFrameId(),"window");

关于javascript - JXBrowser JSFunctionCallback 和 IFrame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41833843/

相关文章:

javascript - 如何创建出现在表格行下方的 div

javascript - 如何统一功能(将3个功能连接为1个)

java - JTable 的 TableModelListener 如何工作?

java - 用 Enter 键遍历 JDateChooser

javascript - 改变 IFrame src 内容

javascript - 美化大一行 JSON 文件

javascript - 如何正确处理 Promise.all : Getting undefined

java - Eclipse - 如何确定 Java 应用程序中的方法数

javascript - 父文件准备就绪

api - 调用 SoundCloud oEmbed 时,我可以隐藏收到的嵌入代码中的图稿吗?