0

「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

4 に答える 4

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");
}
于 2012-04-14T00:39:03.887 に答える
0

シェダルの答えは正しいです。DocumentCompleted はイベント ハンドラーであり、ブラウザーがドキュメントの読み込みを完了すると呼び出されます。ただし、ドキュメントの現在のステータスを明示的に取得する必要がある場合は、WebBrowser.ReadyState を使用して、ドキュメントが読み込まれているかどうかを確認できます。さまざまな ReadyState プロパティへのリンクは次のとおりです。

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

于 2012-04-14T02:46:29.677 に答える
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');
      }
    });
  });
于 2012-04-14T00:39:51.110 に答える
-1

ifステートメントの末尾にある余分なセミコロンを削除します。

if (webBrowser1.DocumentCompleted)
   webBrowser1.Document.GetElementById("_ctl0_EmailAddress").SetAttribute("value", "RogerWilliams");
于 2012-04-14T00:37:08.737 に答える