winform webbrowser 如何控制新窗口打开和通过windowns.open()方式打开?

现在使用winform的webbrowser控件打开网页时,有新窗口打开的页面,会自动使用默认浏览器打开,无法导致无法使用winform控制,也无法关闭。因为原程序有点击打开窗口事件,所以想不通过修改原页面的代码,来捕捉打开新窗口或弹出页面,放到winform里的webbrowser可控制。求解方案和方法。

第1个回答  2023-05-25
当使用WinForms中的WebBrowser控件打开网页时,如果有新窗口打开的页面会自动使用默认浏览器打开,这是因为WebBrowser控件默认情况下不支持捕捉打开新窗口的事件。
如果您希望能够捕捉打开新窗口或弹出页面的事件,并在WinForms中使用WebBrowser控件进行控制,有一个可行的解决方案是使用`NewWindow3`事件。
下面是一个示例代码,演示如何使用`NewWindow3`事件来捕捉打开新窗口的事件,并将新窗口的URL加载到当前的WebBrowser控件中:
```csharp
private void Form1_Load(object sender, EventArgs e)
{
webBrowser1.NewWindow3 += WebBrowser1_NewWindow3;
webBrowser1.Navigate("http://example.com");
}
private void WebBrowser1_NewWindow3(object sender, WebBrowserNavigatingEventArgs e)
{
e.Cancel = true; // 取消默认的新窗口打开行为
// 将新窗口的URL加载到当前的WebBrowser控件中
webBrowser1.Navigate(e.Url);
}
```
在上述示例代码中,我们通过订阅`NewWindow3`事件,然后在事件处理程序中取消默认的新窗口打开行为,并将新窗口的URL加载到当前的WebBrowser控件中。
请注意,这种解决方案仅适用于使用`NewWindow3`事件的情况。如果网页使用其他机制来打开新窗口,可能需要其他的解决方案。
另外,需要确保使用的是最新版本的Internet Explorer内核(例如,IE11),因为WebBrowser控件是使用IE内核进行渲染的。如果您的应用程序在较旧的IE版本下运行,可能会导致某些功能不可用或不正常。

winform webbrowser 如何控制新窗口打开和通过windowns.open()方 ...
} private void WebBrowser1_NewWindow3(object sender, WebBrowserNavigatingEventArgs e){ e.Cancel = true; \/\/ 取消默认的新窗口打开行为 \/\/ 将新窗口的URL加载到当前的WebBrowser控件中 webBrowser1.Navigate(e.Url);} ```在上述示例代码中,我们通过订阅`NewWindow3`事件,然后在事件处理程序...

关于使用Webbrowser打开PPT的问题
你尝试在C盘根目录下建立一个英文名字的文档ABC.ppt,打开试试.

相似回答
大家正在搜