Busyの判定がおかしい?

解決


ほげほげ  2003-10-09 23:57:40  No: 79739  IP: [192.*.*.*]

はじめまして
いつも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 00:45:16  No: 79740  IP: [192.*.*.*]

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 00:31:21  No: 79741  IP: [192.*.*.*]

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

編集 削除
ほげほげ  2003-10-11 00:31:58  No: 79742  IP: [192.*.*.*]

解決チェックです

編集 削除