请在下面的代码中找到帮助“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);”出错
答案 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");