【问题标题】:How to open a link tags in tab control using cefsharp?如何使用cefsharp在选项卡控件中打开链接标签?
【发布时间】:2021-04-25 04:29:33
【问题描述】:
我刚刚在 Windows 窗体应用程序中使用 Cefsharp 库开发了一个类似 Web 浏览器的应用程序。我的浏览器有几个选项卡,但是每当用户单击具有 _blank 属性的“链接标签”时,应用程序都会在单独的窗口中打开一个新链接,尽管我想在选项卡控件的新选项卡中打开链接。
我的应用程序使用了什么:
如果有人能提供帮助,我会很高兴。
【问题讨论】:
标签:
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;
}
}
希望这对您有用。 :)