简体   繁体   English

如何在 CEFSharp 中刷新特定帧

[英]How to refresh a specific frame in CEFSharp

I have a Winforms Application using .NET 4.7.2 and CEFSharp 84.4.10.我有一个使用 .NET 4.7.2 和 CEFSharp 84.4.10 的 Winforms 应用程序。

I have a website loaded into the CEF browser that has a frameset and I want to have a menu item in the context menu that will reload a specific frame.我有一个网站加载到 CEF 浏览器中,它有一个框架集,我想在上下文菜单中有一个菜单项来重新加载一个特定的框架。

I have the menu item happening and in the event handler I tried the following two approaches but they both reload the entire browser, not just the frame.我有菜单项发生,在事件处理程序中我尝试了以下两种方法,但它们都重新加载了整个浏览器,而不仅仅是框架。

How can I reload just the frame?如何仅重新加载框架?

Thank you for your time.感谢您的时间。

    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;
    }

and

    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;
    }

Thanks to @amaitland for clarifying that reloading a single frame is not currently supported.感谢@amaitland 澄清当前不支持重新加载单个框架。 I went with the solution doing it via JS API.我通过 JS API 使用了解决方案。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM