Function Reference

_IELoadWait

ブラウザがページのロードを完了するまで待機します。

#include <IE.au3>
_IELoadWait ( ByRef $o_object [, $i_delay = 0 [, $i_timeout = -1]] )

 

パラメータ

$o_object InternetExplorer.Applicationのオブジェクト変数またはDOM要素
$i_delay [オプション]現在の状態を調べる間隔。ミリ秒単位。
$i_timeout [オプション]関数を終了するまでの待機時間 (デフォルト = 300000ミリ秒、つまり5分)

 

返し値

成功: 1を返します
失敗: 0を返し@ERRORを設定します
@Error: 0 ($_IEStatus_Success) = 正常終了
1 ($_IEStatus_GeneralError) = 一般的なエラー
3 ($_IEStatus_InvalidDataType) = 無効なデータ型
4 ($_IEStatus_InvalidObjectType) = 無効なオブジェクト型
6 ($_IEStatus_LoadWaitTimeout) = ロード待機タイムアウト
8 ($_IEStatus_AccessIsDenied) = アクセス拒否
9 ($_IEStatus_ClientDisconnected) = クライアント切断
@Extended: 無効なパラメータの番号が格納されています

 

注意

IE.au3のいくつかの関数は自動的に_IELoadWait()を呼びます(e.g. _IECreate()、 _IENavigate() etc.)。待機をしたくない場合、自分で待機処理を書きたい場合にそれらの関数はほとんどで$f_wait parameterを使ってその機能を停止させることができます。

ドキュメントオブジェクト、DOM要素を渡すと、_IELoadWaitは親ウィンドウを含むコンテナ要素の準備状態が整っているかをチェックします。

ブラウザのスクリプトに対するセキュリティ制限によって_IELoadWaitのページロード完了通知処理とエラー検知処理が誤動作する場合があります。その場合、_IELoadWaitの呼び出しをやめて他の方法によってページのロード完了を保証する必要があります。普通はブラウザのステータスバーのテキストチェックとSleepコマンドを使用するなどの方法をとります。InternetExplorer(ブラウザ)オブジェクト以外のオブジェクトを使って_IELoadWaitを呼び出す関数を使用する場合はブラウザ自身を使って_IELoadWaitを呼び出すことでも上手くいきます(e.g. _IELoadWait($oIE))。

問題を引き起こす最も一般的な原因はページのリダイレクトとフレームに関連したクロスサイトスクリプティングのセキュリティ制限によるものです。いくつかのアプリケーション(e.g. Gmail)に見られるページの再書き込み技術も問題を引き起こすことがあります。

 

関連

_IELoadWaitTimeout, _IECreate, _IENavigate, _IEFormSubmit, _IELinkClickByText, _IELinkClickByIndex, _IEImgClick, _IEFormImageClick, _IEBodyWriteHTML, _IEDocWriteHTML, _IEAction

 


; *******************************************************
; 例 1 - AutoItのフォーラムページを開き、"View new posts"タブへリンク、
;               エンターキーでリンクをアクティブ化。
;               移動前にページロードが完了するのを待つ。
; *******************************************************
;
#include <IE.au3>
$oIE = _IECreate ("http://www.autoitscript.com/forum/index.php")
Send("{TAB 12}")
Send("{ENTER}")
_IELoadWait ($oIE)