Winform中利用webBrowser执行网页中的下载文件功能的JS
单个JS可以执行,多个JS无法按顺序执行,本人的示例代码如下:
单个JS可以执行,多个JS无法按顺序执行,本人的示例代码如下:
private void btnDownload_Click(object sender, EventArgs e) { for (int i = 0; i < 3; i++) { webBrowser1.Document.InvokeScript("download()", new object[] { i }); this.richTextBox1.Text += DateTime.Now.ToString() + " 执行download("+i+")..\n"; } this.richTextBox1.Text += DateTime.Now.ToString() + " 下载完成"; }
打印结果
2016/09/19 23:49:13 执行download(0).. 2016/09/19 23:49:13 执行download(1).. 2016/09/19 23:49:13 执行download(2).. 2016/09/19 23:49:13 下载完成
几个结果在同时打印出来,只有最后一个download(2)执行了,其他2个未能执行。
在InvokeScript之后尝试添加了Thread.sleep()后会导致Form Not Responding
讨教:怎么样让InvokeScript执行完毕后 再继续往下执行?
解决方案
50
执行有没有返回结果?等返回结果
50
怎么判断是最后一个download完成了?从你的代码上看,显示的结果应该是:
执行3次“执行download(…)”,然后显示一次:“下载完成”
这个结果与实际结果相符,是符合预期的,代码中没有看到怎么判断download执行结果的部分
执行3次“执行download(…)”,然后显示一次:“下载完成”
这个结果与实际结果相符,是符合预期的,代码中没有看到怎么判断download执行结果的部分