有没有办法知道WebBrowser控件已完成加载页面?
目前我正在使用WebBrowser.ReadyState == WebBrowserReadyState.Complete
但是这表示网页内容已下载,但有时闪存尚未加载。
答案 0 :(得分:3)
Flash文件加载不会将其进度报告回浏览器,所以不幸的是你无法捕获它。
答案 1 :(得分:1)
我发现最好的事情是使用计时器等待30秒的特定时间,然后加载页面。
不完美,但我想到的最好。
答案 2 :(得分:1)
如果您可以控制Flash,则可以放置一个ActionScript事件,然后将该事件传递给浏览器。
答案 3 :(得分:0)
WebBrowser
控件有一个DocumentCompleted
事件,您可以捕获并做出反应。我不知道是否包含Flash内容加载 - 文档不是很明确....
webBrowser1.DocumentCompleted +=
new WebBrowserDocumentCompletedEventHandler(webBrowser1_DocumentCompleted);
private void webBrowser1_DocumentCompleted(object sender,
WebBrowserDocumentCompletedEventArgs e)
{
// do whatever you need to do when the document is completely loaded here
}
答案 4 :(得分:-1)
您可以尝试这种方式:
bool loadingPage = true;
private void Browser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
if (this.ReadyState != WebBrowserReadyState.Complete) return;
if ((e.Url.AbsolutePath == "blank") || (e.Url != this.Url)) return;
if (this.Document.Body.All.Count < 20) return;
loadingPage = false
}
private void WaitPageLoad()
{
//To avoid waiting forever. You can add timer here.
while(loadingPage)
{
}
}