编程语言
首页 > 编程语言> > c# – 弹出窗口webbrowser控件

c# – 弹出窗口webbrowser控件

作者:互联网

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

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

但在探索者中它正在发挥作用.我注意到,只有当我在Internet Explorer中打开主页时,细节链接才有效,否则如果我直接从Internet Explorer调用详细URL,它也会给我同样的错误.

解决方法:

我最近碰到了一个非常相似的情况.在我的例子中,弹出浏览器没有共享嵌入式浏览器的会话.我必须做的是捕获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,winforms,webbrowser-control
来源: https://codeday.me/bug/20190714/1455008.html