HPの読み込み完了まで待つには?

解決


ゆたか  2005-08-29 03:41:51  No: 91839

Obj.Busy = Trueを使いHPを読み込むまで待つ方法として

 Do While Obj.Busy = True
    DoEvents
 Loop

がありますがどうもこの記述では完全に待ちきれていない
ようなのです。この後にテキストへの自動入力があり
誤動作しています。

これ以外にHPの読み込みが完了するまで待つ方法を
教えて下さい。お願いします。


LESIA  2005-08-29 08:56:33  No: 91840

Do While Obj.Busy = True
  DoEvents
Loop

Do While Obj.Document.ReadyState <> "complete"
  DoEvents
Loop

で、どうでしょうか。


ゆたか  2005-08-30 04:44:48  No: 91841

ご教授ありがとうございます。

これって以下のやつと同意味ですよね
Do While Obj.Document.ReadyState = 4
   DoEvents
Loop

これは試してみたんですがイマイチなんですよ。
何かまちがってますかねぇ

あと当方の作ってるPGはフレーム2画面の
右側画面なんですよ。それでこういう記述に
なってるんですが何かやはりおかしいですか?

Do While Obj.Document.frames(1).Document.ReadyState = 4
   DoEvents
Loop


KG  2005-08-30 05:00:45  No: 91842

4はcompleteと同じじゃなかったかな。

だから
Do While Obj.Document.ReadyState <> 4
   DoEvents
Loop

なのでは?


LESIA  2005-08-30 13:08:56  No: 91843

4はREADYSTATE_COMPLETE定数の値で、Obj.ReadyStateが取る値です。
なので 
Do While Obj.ReadyState <> 4
   DoEvents
Loop
または
Do Until Obj.ReadyState = 4
   DoEvents
Loop
となります。

Obj.Document.ReadyStateが取る値は文字列なので
Do While Obj.Document.ReadyState = 4
   DoEvents
Loop
とした場合は、ReadyStateが数値4になることはありませんので
Loopを一度も回りません。

Do While Obj.Document.frames(1).Document.ReadyState = 4
   DoEvents
Loop
これも
Do While Obj.Document.frames(1).Document.ReadyState <> "complete"
   DoEvents
Loop
または
Do Until Obj.Document.frames(1).Document.ReadyState = "complete"
   DoEvents
Loop
ですね。

ReadyStateが"complete"じゃない間Loopするか、"complete"になるまで
Loopする訳です。


ゆたか  2005-08-31 04:05:35  No: 91844

書かれていた通りに記述したらちゃんと動作しました。
助かりました。ありがとうございます。当方の勘違いでした。


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

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






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