【问题标题】:How to open a link tags in tab control using cefsharp?如何使用cefsharp在选项卡控件中打开链接标签?
【发布时间】:2021-04-25 04:29:33
【问题描述】:

我刚刚在 Windows 窗体应用程序中使用 Cefsharp 库开发了一个类似 Web 浏览器的应用程序。我的浏览器有几个选项卡,但是每当用户单击具有 _blank 属性的“链接标签”时,应用程序都会在单独的窗口中打开一个新链接,尽管我想在选项卡控件的新选项卡中打开链接。

我的应用程序使用了什么:

  • C# 窗体应用程序

  • Cefsharp 库中的 ChromiumWebBrowser 类

如果有人能提供帮助,我会很高兴。

【问题讨论】:

    标签: c# cefsharp chromium-embedded


    【解决方案1】:

    我刚刚查看了文档并发现了问题。

    • 您需要使用 LifeSpanHandler 类来中断弹出窗口并通过将 newBrowser 分配为“null”来禁用打开新浏览器,然后您才能执行您的指令。
    • 如果您希望在 self 选项卡中打开窗口,只需删除下面代码中的注释即可。

    这是我为我的问题所做的:

     public class LifespanHandler : ILifeSpanHandler
        {
    
            bool ILifeSpanHandler.OnBeforePopup(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame, string targetUrl, string targetFrameName, WindowOpenDisposition targetDisposition, bool userGesture, IPopupFeatures popupFeatures, IWindowInfo windowInfo, IBrowserSettings browserSettings, ref bool noJavascriptAccess, out IWebBrowser newBrowser)
            {
    
                Program.Form.Invoke(new Action(() => Program.Form.newPage(targetUrl)));
    
                //browser.MainFrame.LoadUrl(targetUrl);
    
                newBrowser = null;
                return true;
            }
        }
    

    希望这对您有用。 :)

    【讨论】:

      猜你喜欢
      • 2010-11-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-09
      • 2015-03-08
      • 2015-09-17
      相关资源
      最近更新 更多