要素の中または前後にテキストを挿入します。
#include <IE.au3>
_IEDocInsertText ( ByRef $o_object, $s_string [, $s_where = "beforeend"] )
パラメータ
$o_object | ドキュメント要素を指すオブジェクト変数 |
$s_string | 挿入するテキストを格納した文字列 |
$s_where | [オプション]文字列挿入位置を指定します beforebegin = 文字列をオブジェクト直前に挿入します afterbegin = 文字列をオブジェクト開始直後、オブジェクト内容開始直前に挿入します beforeend = (デフォルト) 文字列をオブジェクト終了直前、全オブジェクト内容終了直後に挿入します afterend = 文字列をオブジェクト終了直後に挿入します |
返し値
成功: | 1を返します |
失敗: | 0を返し@ERRORを設定します |
@Error: | 0 ($_IEStatus_Success) = 正常終了 |
3 ($_IEStatus_InvalidDataType) = 無効なデータ型 | |
4 ($_IEStatus_InvalidObjectType) = 無効なオブジェクト型 | |
5 ($_IEStatus_InvalidValue) = 無効な値 | |
@Extended: | 無効なパラメータの番号が格納されています |
注意
HTMLタグを含む挿入テキストはテキストとして表示されるように最初に変換されます。_IEPropertySetのinnerHTML、outerHTML、innerText、outerText機能を使用して挿入した内容を動的に操作することが可能です。
関連
_IEDocInsertHTML, _IEPropertyGet, _IEPropertySet, _IEBodyReadHTML, _IEBodyWriteHTML, _IEDocReadHTML, _IEHeadInsertEventScript
例
; *******************************************************
; 例 1 - ドキュメントの先頭と末尾にHTMLを挿入
; *******************************************************
;
#include <IE.au3>
$oIE = _IECreate("http://www.autoitscript.com")
$oBody = _IETagNameGetCollection($oIE, "body", 0)
_IEDocInsertHTML($oBody, "<h2>This HTML is inserted After Begin</h2>", "afterbegin")
_IEDocInsertHTML($oBody, "<h2>This HTML is inserted Before End</h2>", "beforeend")
; *******************************************************
; 例 2 - 基礎的なサンプルページを使用してブラウザを開き、"IEAu3Data"という
; DIVタグの内部と周囲にHTMLを挿入。ボディHTMLを表示
; *******************************************************
;
$oIE = _IE_Example ("basic")
$oDiv = _IEGetObjByName($oIE, "IEAu3Data")
_IEDocInsertHTML($oDiv, "<b>(HTML beforebegin)</b>", "beforebegin")
_IEDocInsertHTML($oDiv, "<i>(HTML afterbegin)</i>", "afterbegin")
_IEDocInsertHTML($oDiv, "<b>(HTML beforeend)</b>", "beforeend")
_IEDocInsertHTML($oDiv, "<i>(HTML afterend)</i>", "afterend")
ConsoleWrite(_IEBodyReadHTML($oIE) & @CRLF)
; *******************************************************
; 例 3 - 応用例
; 全ページの先頭に時刻を挿入し、新しいページをブラウズしている場合でも表示させる
; _IEDocInsertText、_IEDocInsertHTMLと
; _IEPropertySetの"innerhtml"、"referrer"機能を使用
; *******************************************************
;
#include <IE.au3>
$oIE = _IECreate("http://www.autoitscript.com")
AdlibRegister("UpdateClock", 1000) ; 1秒毎に時刻を更新
; ブラウザウィンドウが存在する間アイドリング
While WinExists(_IEPropertyGet($oIE, "hwnd"))
Sleep(10000)
WEnd
Exit
Func UpdateClock()
Local $curTime = "<b>Current Time is: </b>" & @HOUR & ":" & @MIN & ":" & @SEC
; _IEGetObjByNameは移動後、NoMatchエラーを返すはずなので
; (DIV挿入前)、エラー通知を一時的にオフにしておく
_IEErrorNotify(False)
Local $oAutoItClock = _IEGetObjByName($oIE, "AutoItClock")
If Not IsObj($oAutoItClock) Then ; 見つからない場合、DIV要素を挿入
;
; BODYの参照取得, DIV挿入, DIVの参照取得, 時間を更新
$oBody = _IETagNameGetCollection($oIE, "body", 0)
_IEDocInsertHTML($oBody, "<div id='AutoItClock'></div>", "afterbegin")
$oAutoItClock = _IEGetObjByName($oIE, "AutoItClock")
_IEPropertySet($oAutoItClock, "innerhtml", $curTime)
;
; 時刻の後に空白が挿入されていないかどうか、参照文字列を調べる
_IELoadWait($oIE)
$sReferrer = _IEPropertyGet($oIE, "referrer")
If $sReferrer Then _IEDocInsertText($oAutoItClock, _
" Referred by: " & $sReferrer, "afterend")
Else
_IEPropertySet($oAutoItClock, "innerhtml", $curTime) ; 時間を更新
EndIf
_IEErrorNotify(True)
EndFunc