CefSharp-具有多页的JavascriptObjectRepository

时间:2019-07-16 15:27:14

标签: javascript c# cefsharp chromium-embedded

我在理解ChromiumWebBrowser.JavascriptObjectRepository错误时遇到了问题

我可以使用以下方法注册C#对象:

chromiumWebBrowser.JavascriptObjectRepository.Register("gui", myObjectIndex, true);
chromiumWebBrowser.Address = "index.html";

并且javascript代码在我的第一页index.html上正常工作:

$("mybutton").on("click", function (event) {
    event.preventDefault();
    gui.onClickButtonChangePage();  // calls MyObjectIndex.OnClickButtonChangePage()
});

但是,当页面更改时,我想将对象myObjectIndex更改为MyObjectPage2

我正在尝试做到:

chromiumWebBrowser.JavascriptObjectRepository.UnRegister("gui");
chromiumWebBrowser.JavascriptObjectRepository.Register("gui", myObjectPage2, true);
chromiumWebBrowser.Address = "page2.html";

当我按下page2.html上的按钮时:

    1. 获取错误
$("mybutton2").on("click", function (event) {
 event.preventDefault();
 gui.onClickButton2();  // didn't call MyObjectPage2.OnClickButton2() !
});
    1. 不执行任何操作:
$("mybutton2").on("click", function (event) {
    event.preventDefault();
    (async () =>
    {
        await CefSharp.BindObjectAsync("gui", "gui");
        gui.onClickButton2(); // Nothing happens
    })();
});

wiki CefSharp

1 个答案:

答案 0 :(得分:0)

我只需要调用以下代码:

else real_OUT=1'b0;