CefSharp - 具有多页的 JavascriptObjectRepository

CefSharp - JavascriptObjectRepository with multipages

我无法理解 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 上的按钮时:

$("mybutton2").on("click", function (event) {
 event.preventDefault();
 gui.onClickButton2();  // didn't call MyObjectPage2.OnClickButton2() !
});
$("mybutton2").on("click", function (event) {
    event.preventDefault();
    (async () =>
    {
        await CefSharp.BindObjectAsync("gui", "gui");
        gui.onClickButton2(); // Nothing happens
    })();
});

wiki CefSharp

我只需要调用这段代码:

$(document).ready(function () {
        CefSharp.DeleteBoundObject("gui");
        CefSharp.RemoveObjectFromCache("gui");
        CefSharp.BindObjectAsync("gui");
});