如何在CEFSharp中刷新特定的帧

时间:2020-09-06 23:00:42

标签: winforms frame cefsharp

我有一个使用.NET 4.7.2和CEFSharp 84.4.10的Winforms应用程序。

我有一个加载到带有框架集的CEF浏览器中的网站,并且我想在上下文菜单中有一个菜单项来重新加载特定的框架。

我正在执行菜单项,在事件处理程序中,我尝试了以下两种方法,但是它们都重新加载了整个浏览器,而不仅仅是框架。

如何只重新加载框架?

谢谢您的时间。

    bool IContextMenuHandler.OnContextMenuCommand(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame, IContextMenuParams parameters, CefMenuCommand commandId, CefEventFlags eventFlags)
    {
        switch ((int)commandId)
        {
            ...

            case RefreshContentFrame:
                frame.Browser.Reload(true);
                break;
            ...
        }

        return false;
    }

    bool IContextMenuHandler.OnContextMenuCommand(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame, IContextMenuParams parameters, CefMenuCommand commandId, CefEventFlags eventFlags)
    {
        switch ((int)commandId)
        {
            ...

            case RefreshContentFrame:
                var myFrame = browser.GetFrame("MyFrame");
                if (myFrame != null)
                {
                    myFrame.Browser.Reload(true);
                }
                break;
            ...
        }

        return false;
    }

1 个答案:

答案 0 :(得分:0)

感谢@amaitland阐明当前不支持重新加载单个框架。我通过JS API进行了解决。