Ody*_*dys 1 c# webbrowser-control
我有一张表格webbrowser.事件:Navigating,Navigated和DocumentCompleted连接.
这是我告诉它后得到的 .Navigate(new Url("http://google.com"));
20:42:42:036: 1. Navigating to: http://google.com/
20:42:42:545: 2. Navigated: http://www.google.com/
20:42:42:854: 3. Navigating to: about:blank
20:42:43:002: 4. Navigated: about:blank
20:42:43:004: 5. Loaded: about:blank
20:42:43:158: 6. Loaded: http://www.google.com/
Run Code Online (Sandbox Code Playgroud)
有人可以解释为什么我会得到这些about:blank东西吗?
代码只显示e.Url每个事件处理程序的参数.
似乎自动导航到about:blank是WebBrowser对象使用的已知"安全毯",以确保HTML对象在尝试加载您请求的页面之前有效,如本MSDN文章中所述:
[...] IWebBrowser2 :: Navigate2方法用于导航到about:blank页面.导航到此空白页面可确保加载MSHTML,并通过动态HTML(DHTML)对象模型提供HTML元素.
此外,该DocumentCompleted事件应该工作.你确定你的活动没有做其他事吗?
我尝试过这个简单的代码,它按预期工作:
namespace CSharpWindowsPractice
{
using System;
using System.Windows.Forms;
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void webBrowser1_Navigated(object sender, WebBrowserNavigatedEventArgs e)
{
this.listBox1.Items.Add("Navigated to: " + e.Url);
}
private void webBrowser1_Navigating(object sender, WebBrowserNavigatingEventArgs e)
{
this.listBox1.Items.Add("Navigating to: " + e.Url);
}
private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
this.listBox1.Items.Add("DocumentCompleted: " + e.Url);
}
private void button1_Click(object sender, EventArgs e)
{
this.webBrowser1.Navigate(new Uri(@"http://google.com"));
}
}
}
Run Code Online (Sandbox Code Playgroud)
按下按钮后,您将获得以下信息:
