webBrowser控件问题

动天丶 2016-10-15 01:43:06
我通过C#的webBrowser控件加载了一个JSP界面,想执行其中的一个JS函数,我把webBrowser1.Document.InvokeScript("load", new object[] { reader.GetString(6), reader.GetString(5) });这段代码放到Form2_Load 中执行不了,但是放到button1_Click中通过点击却可以,求解。
...全文
211 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
动天丶 2016-10-20
  • 打赏
  • 举报
回复
感谢2位 ,受教。
crystal_lz 2016-10-18
  • 打赏
  • 举报
回复
你窗体load一瞬间完成 你指望 你访问的页面也是一瞬间完成?。。。
  • 打赏
  • 举报
回复
那是因为网页还未load完成,js尚未加载,放在Load里时,webBrowser load和执行JS几乎是在同一时间发生。如果他们中间加个时间间隔可能不会出现这个问题。 你所说的button不会是因为form加载后webBrowser就开始加载,等你点击button时已经加载完成。你试试form出现后立马按button1不留时间间隔也会复制你说的这个问题。 所以,最好把你的JS执行放在webBrowser1_DocumentCompleted事件里:
		private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
        {
			//网页是否加载完成
            if (webBrowser1.ReadyState != WebBrowserReadyState.Complete)
                return;
            if (e.Url.ToString() != webBrowser1.Url.ToString())
                return;
			
			 //主页加载完成后登录
            if (webBrowser1.ReadyState == WebBrowserReadyState.Complete)
            {
				try
				{
					webBrowser1.Document.InvokeScript("load", new object[] { reader.GetString(6), reader.GetString(5) });
				}
				catch(Exception)
				{
					throw;
				}
            }
		}

110,561

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧