如何使用 cefsharp 在选项卡控件中打开 link 标签?
How to open a link tags in tab control using cefsharp?
我刚刚在 windows 表单应用程序中使用 Cefsharp 库开发了一个类似 Web 浏览器的应用程序。我的浏览器有几个选项卡,但每当用户单击带有 _blank 的 属性 的 'a link tags' 时,应用程序都会在单独的 window 中打开一个新的 link,尽管我想打开 links 改为在选项卡控件的新选项卡中。
我在申请中使用的内容:
C#windows表格申请
来自 Cefsharp 库的 ChromiumWebBrowser class
如果有人能提供帮助,我会很高兴。
我刚刚查看了文档并发现了问题。
- 您需要使用 LifeSpanHandler class 来中断弹出窗口并通过将 newBrowser 分配给 'null' 来禁用打开新浏览器然后您将能够执行您的指示。
- 如果您希望 windows 在自己的选项卡中打开,只需删除下面代码中的注释即可。
以下是我针对我的问题所做的工作:
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;
}
}
希望这对您有用。 :)
我刚刚在 windows 表单应用程序中使用 Cefsharp 库开发了一个类似 Web 浏览器的应用程序。我的浏览器有几个选项卡,但每当用户单击带有 _blank 的 属性 的 'a link tags' 时,应用程序都会在单独的 window 中打开一个新的 link,尽管我想打开 links 改为在选项卡控件的新选项卡中。
我在申请中使用的内容:
C#windows表格申请
来自 Cefsharp 库的 ChromiumWebBrowser class
如果有人能提供帮助,我会很高兴。
我刚刚查看了文档并发现了问题。
- 您需要使用 LifeSpanHandler class 来中断弹出窗口并通过将 newBrowser 分配给 'null' 来禁用打开新浏览器然后您将能够执行您的指示。
- 如果您希望 windows 在自己的选项卡中打开,只需删除下面代码中的注释即可。
以下是我针对我的问题所做的工作:
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;
}
}
希望这对您有用。 :)