Busyの判定がおかしい?

解決


ほげほげ  2003-10-10 08:57:40  No: 79739

はじめまして
いつもROMさせていただいております
さっそく質問させていただきます。

^^^^^^^^^^^^^^^^^^^^^^^^^
Sub ieの場合()
Dim ie As New InternetExplorer

ie.Navigate hogehoge

Do Until (ie.ReadyState = READYSTATE_COMPLETE And Not ie.Busy)
DoEvents
Loop

ie.Document.hoge.Value = "hogehoge"
ie.Document.Forms(0).submit

End Sub

^^^^^^^^^^^^^^^^^^^^^^^^^^^
Sub WEBブラウザの場合()

With Form1.WebBrowser1

.Navigate hogehoge

Do Until (.ReadyState = READYSTATE_COMPLETE And Not .Busy)
DoEvents
Loop

.Document.hoge.Value = "hogehoge"
.Document.Forms(0).submit

End With
End Sub

^^^^^^^^^^^^^^^^^^^^^^^^^

と、こんなかんじでウェブページを表示させているのですが

ieの場合は  submit  までスムーズに進んでいくのですが
WEBブラウザの場合  では  Busyの判定がおかしいのかページ読み込み前にLoopが終わってしまい

.Document.hoge.Value = "hogehoge"  がエラーになってしまうのです。

原因と対処法がありましたらご教示いただけますでしょうか


魔界の仮面弁士  2003-10-10 09:45:16  No: 79740

DocumentCompleteイベントが発生した後で、.Documentプロパティを
操作するようにしてください。それ以前のタイミングでは、文書の解析が
完了していない可能性があります。(要IE6 SP1)

http://www.microsoft.com/japan/developer/library/jptech/MSDNNews/top.htm
》 ドキュメントが完全にダウンロードされると、DownloadCompleteイベントが
》 発生します。この場合でも、そのオブジェクト モデルを通じてドキュメントの内容を
》 管理することは必ずしも安全ではありません。代わりに、DocumentComplete
》 イベントが、すべてが完了し、ドキュメントの準備が整ったことを示します
》(DocumentCompleteは、対象URLに初めてアクセスしたときにだけ届きます。
》F5キーを押すか、[最新の情報に更新(Refresh)]ボタンをクリックした
》2回目以降は、DownloadCompleteイベントだけを受け取ります)。

http://msdn.microsoft.com/workshop/browser/webbrowser/reference/events/DocumentComplete.asp


ほげほげ  2003-10-11 09:31:21  No: 79741

魔界の仮面弁士さま。大変参考になりました。ありがとうございました。


ほげほげ  2003-10-11 09:31:58  No: 79742

解決チェックです


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加