c# - 弹出窗口 web 浏览器控件

标签 c# winforms webbrowser-control

我正在使用网络浏览器控件从网站获取一些信息。它有一个详细信息链接,单击该链接会打开一个弹出窗口并在网络浏览器中显示详细信息。

如果单击 webbrowser 控件中的链接(通过程序)打开另一个窗口并显示执行错误,我该怎么办。

但在资源管理器中它是有效的。我注意到只有在 Internet Explorer 中打开主页时详细信息链接才有效,否则如果我直接从 Internet Explorer 调用详细信息 URL,它也会给我同样的错误。

最佳答案

我最近遇到了一个非常相似的情况。就我而言,弹出式浏览器不共享嵌入式浏览器的 session 。我必须做的是捕获 NewWindow 事件并取消它,然后将预期的 URL 发送到嵌入式浏览器。我需要使用 ActiveX 浏览器实例,因为它会为您提供试图启动的 URL。这是我的代码:

您需要将 Microsoft Internet Controls COM 引用添加到您的项目才能使其正常工作。

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
        // this assumes that you've added an instance of WebBrowser and named it webBrowser to your form
        SHDocVw.WebBrowser_V1 axBrowser = (SHDocVw.WebBrowser_V1)webBrowser.ActiveXInstance;

        // listen for new windows
        axBrowser.NewWindow += axBrowser_NewWindow;
    }

    void axBrowser_NewWindow(string URL, int Flags, string TargetFrameName, ref object PostData, string Headers, ref bool Processed)
    {
        // cancel the PopUp event
        Processed = true;

        // send the popup URL to the WebBrowser control
        webBrowser.Navigate(URL);
    }
}

关于c# - 弹出窗口 web 浏览器控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15239946/

相关文章:

c# - 导出datagridview到word文档c#

c# - 我的 C# 应用程序应该在哪里写入数据,以便用户无法修改或访问它

c# - 在显示到 WPF WebBrowser 控件之前操作 HTML 文档

c# - 如果 Pages = 1,则隐藏 DataPager

c# - 在 asp.net 中使用嵌套转发器

C#、Winform - 创建 PDF

browser - C#Webbrowser控件-定义加载的文档

c# - 基于 HtmlAgilityPack.HtmlNode 获取 Html 元素

c# - ASP.net MVC Controller 不会返回 View

c# - 在每次绘制时重绘不变的背景?