我有一张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/
有人可以解释为什么我会收到这个about:blank
的东西吗?
代码只显示每个事件处理程序的e.Url
参数。
答案 0 :(得分:5)
似乎自动导航到about:blank是WebBrowser
对象使用的已知“安全毯”,以确保在尝试加载您请求的页面之前HTML对象有效,如下所述this MSDN article:
[...] 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"));
}
}
}
按下按钮后,您将获得以下信息: