我怎么每次一个HTML网页浏览与网页浏览器?(How do i navigate with webbrowser each time to one html page)

   IT问题网   2018-08-09 00:00:00

问 题

我有44 html地址,我想每一次浏览一个html地址。

 的for(int i = 1; i 45;我++)
{
adrbartextbox.text = sourceurl + i;
。getcurrentbrowser()导航(adrbartextbox.text);
}
 

在web浏览器文件完成的事件,我需要,只有当它完成了导航和加载所有包括javascript和一切才定位到下一个html地址的页面。

 私人无效form1_documentcompleted(对象发件人,webbrowserdocumentcompletedeventargs e)
{
//如果完全地加载网页,然后做一些事情
}
 

的问题是,该环路将尝试每次浏览一个新的页面的html最后一个被载入前,在我之前有什么事情的完成情况。

修改

按钮单击事件:

 私人无效toolstripbutton3_click(对象发件人,eventargs的)
{
gethtmls();
checkqueue();
}
 

然后gethtmls方式:

 专用队列乌里 myurls =新问答lt;乌里();
私人布尔isbusy = false;

私人无效gethtmls()
{
的for(int i = 1; i 45;我++)
{
adrbartextbox.text = sourceurl + i;
targethtmls =(combinedhtmlsdir +"\\的html"+ 1 +名".txt");
乌里targeturi中=新的uri(sourceurl + i);
myurls.enqueue(targeturi中);
}
}
 

然后checkqueue方式:

 私人无效checkqueue()
{
如果(isbusy)
返回; //我们下载了一些网页,现在,请勿打扰

isbusy = true; // ok,让我们开始吧

如果(myurls.count == 0)//没有更多的网页下载,我们就大功告成了
{
isbusy = false;
返回;
}

开放的我们的uri = myurls.dequeue(); //从队列中的一个url
。getcurrentbrowser()导航(uri);
}
 

和最后完成事件:

 私人无效form1_documentcompleted(对象发件人,webbrowserdocumentcompletedeventargs e)
{
myurls.dequeue();
//如果完全地加载网页,然后做一些事情

isbusy = false; // 做完了
checkqueue(); //检查队列中下页
}
 
解决方案

您正在浏览的所有网页,在同一时间,我的循环。在我看来,你需要的时候被下载一个网页,将被检查队列中。

 专用队列乌里 myurls =新问答lt;乌里();
私人布尔isbusy = false;
 

在 isbusy 标志将是我们的下一个方法,因为我们只想下载一页一次。

 私人无效checkqueue()
{
如果(isbusy)
返回; //我们下载了一些网页,现在,请勿打扰

isbusy = true; // ok,让我们开始吧

如果(myurls.count == 0)//没有更多的网页下载,我们就大功告成了
{
isbusy = false;
返回;
}

开放的我们的uri = myurls.dequeue(); //从队列中的一个url
webbrowser.navigate(uri); //下载页面
}
 

我们将调用此方法,当一个页面就会被下载。

 私人无效form1_documentcompleted(对象发件人,webbrowserdocumentcompletedeventargs e)
{
//如果完全地加载网页,然后做一些事情

isbusy = false; // 做完了
checkqueue(); //检查队列中下页
}
 

当然,你得叫 checkqueue()来初始化下载网页的过程。

标签:怎么怎样每次一个网页浏览阅读涉猎网页浏览器



分享:

  • 微信
  • QQ好友
  • QQ空间
  • 新浪微博


热门推荐

如何使用的webmethod用的Telerik批量编辑网格(how to use webmethod with telerik batch edit grid)

problem work on asp.net vs2012 c# telerik:radgrid batch e ...

iTextSharp的不能转换所有的HTML到PDF(iTextSharp Can not Convert All HTML to PDF)

problem using the sample codes from here i come up with t ...

WCF服务 - 留言/对象大小相关(WCF Service - Message / Object size related)

problem i have wcf service (s1) as client and another wcf ...

使用asp.net 5 TESTSERVER嘲笑外部API调用(Using asp.net 5 TestServer to Mock an external Api call)

problem i am trying to use testserver to test my middlewa ...

改变使用动画不透明度WPF按钮属性(Changing opacity WPF Button property using Animation)

problem i created a button with drop shadow effect. now i ...

找不到我的实体框架数据库(Cannot find my Entity Framework database)

problem i am a little confused on the code first entity f ...

如何开始在OS X上使用FSharp(F#)?(How to get started using FSharp (F#) on OS X)

problem i know that mono exists, but just rec ...

从服务器的影像传输到本地文件夹中的Windows Store应用(Transfer images from server to local folder Windows Store App)

problem here is my situation : i have a windows servic ...

如何建立一个没有初始化为空或0对象的数组?(how to create an array without objects initialized to null or 0)

problem byte[] buffer = new byte[500000]; initializes b ...

DynamoDB .NET - 删除表中的所有项目(DynamoDB .NET - Delete all items from a table)

problem i'm learning how to work with dynamod ...

在提取运行时类型(Extract type at runtime)

problem i have a type namebeing passed as an input . "mya ...

MediaCapture Windows 8的桌面应用程序 - 不能得到它的工作(MediaCapture Windows 8 Desktop Application- Can't get it work)

problem i'm trying to implement an image capture via this ...

问题与查询字符串参数的长度。 HTTP错误400(Issue with Query String Parameter Length. Http Error 400)

problem can anyone please tell me issue with my url:- htt ...

如何DataGridView中的多个列绑定到一个自定义类的领域?(How to bind DataGridView's multiple columns to a custom class's fields)

problem suppose i have a simple class, and li ...

保存PDF文件作为字节数组或使用Rotativa流(Save PDF file as a byte array or stream using Rotativa)

problem i'm trying to convert html to a pdf using rotativ ...

AngularJS:有条件的NG-类的函数触发可笑的金额(AngularJS: conditional ng-class with a function triggering ridiculous amounts)

problem i checked similar qamp;as but they d ...

Console.OutputEncoding相应设置,但控制台仍然打印geeberish(Console.OutputEncoding set accordingly but Console still prints geeberish)

problem in debug i do see the characters properly. why do ...

自定义的WinForms数据转换器不工作的空类型绑定(双?)(Custom WinForms data binding with converter not working on nullable type (double))

problem in my winforms application i implemented custom d ...

的app.config - 如何在运行时从文件中力载荷?(app.config — How to force load from file at runtime)

problem i created a command-line application ...

无法通过构造函数,WCF初始化成员(Unable to initialize member through Constructor in WCF)

problem i have a cibilresponse class that has ...