2

ページにWebBrowserコントロールがあります。ブラウザコントロールに表示されているページでJavaScriptを起動します。Webページを保存しようとすると、このエラーが発生します

String strHtml = _browser.Document.Body.OuterText;
File.WriteAllText("C:\saveme.html", strHtml);

この行_browser.Document.Body.OuterTextは例外をスローします

Exception:: Specified cast is not valid.
at System.Windows.Forms.UnsafeNativeMethods.IHTMLDocument2.GetLocation()
at System.Windows.Forms.WebBrowser.get_Document()....

私もInvokeを使用しましたが、機能しません。見逃したものはありますか?

4

1 に答える 1

5

UIスレッドからWebBrowserコントロールにアクセスしていますか?そうでない場合は、UIスレッドからアクセスするか、Dispatcher.Invokeを使用してみてください。詳細については、「指定されたキャストが無効です」エラーを参照してください。

それ以外の場合は、ドキュメントの読み込みがまだ完了していない可能性があります。DocumentCompletedイベントが発生するまで待って、ドキュメントがロードされたことを確認してから、プロパティにアクセスします。詳細について は、WebBrowser.Document.Bodyが常にnullであるを参照してください。

于 2012-09-24T06:52:30.543 に答える