我需要帮助---> if语句:页面加载后,然后执行此操作

时间:2012-04-14 00:33:39

标签: c# load click execute

请在下面的代码中找到帮助“if(webBrowser1.DocumentCompleted);”

这是我点击按钮后想要发生的事件: 1.)检索网页 2.)如果网页加载完毕,则填写表单属性

我被困在2号。如何在加载后制作与页面有关的“IF”语句

   private void button1_Click(object sender, EventArgs e)
 {
webBrowser1.Navigate("costco.com/Common/Login.aspx?cm_re=1_en-_-Top_Right_Nav-_-Top_login&topnav=&whse=BC&lang=en-US")


  if (webBrowser1.DocumentCompleted);
   webBrowser1.Document.GetElementById("_ctl0_EmailAddress").SetAttribute("value", "RogerWilliams");

}

“if(webBrowser1.DocumentCompleted);”出错

4 个答案:

答案 0 :(得分:1)

DocumentCompleted不是布尔属性,它是异步发生的事件。你应该创建一个回调,一旦事件被触发就会被调用。

private void button1_Click(object sender, EventArgs e)
{
    webBrowser1.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(OnDocumentCompleted);
    webBrowser1.Navigate("costco.com/Common/Login.aspx?cm_re=1_en-_-Top_Right_Nav-_-Top_login&topnav=&whse=BC&lang=en-US");
}

private void OnDocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
    ((WebBrowser)sender).Document.GetElementById("_ctl0_EmailAddress").SetAttribute("value", "RogerWilliams");
}

答案 1 :(得分:0)

你也可以在jquery中使用ajax这样做:

 $('#yourlink').click(function() {
    $.ajax({
      url: 'costco.com/Common/Login.aspx?cm_re=1_en-_-Top_Right_Nav-_-Top_login&topnav=&whse=BC&lang=en-US',
      success: function(data) {
        $('#_ctl0_EmailAddress').val('RogerWilliams');
      }
    });
  });

答案 2 :(得分:0)

Shedal的回答是正确的。 DocumentCompleted是一个事件处理程序,在浏览器完成加载文档时调用。但是,如果您明确需要获取文档的当前状态,则可以使用WebBrowser.ReadyState并检查文档是否已加载。以下是指向不同ReadyState属性的链接:

http://msdn.microsoft.com/en-us/library/system.windows.forms.webbrowserreadystate.aspx

答案 3 :(得分:-1)

if语句末尾删除额外的分号:

if (webBrowser1.DocumentCompleted)
   webBrowser1.Document.GetElementById("_ctl0_EmailAddress").SetAttribute("value", "RogerWilliams");