_IEDocInsertText
Вставляет текст внутрь или снаружи элемента.
#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-теги преобразуется в спец-символы и будут отображаться как обычный текст. Свойства innerHTML, outerHTML, innerText и outerText функции _IEPropertySet могут быть использованы для динамической манипуляции вставляемым содержимым.См. также
_IEDocInsertHTML, _IEPropertyGet, _IEPropertySet, _IEBodyReadHTML, _IEBodyWriteHTML, _IEDocReadHTML, _IEHeadInsertEventScriptПример
; ======================================
; Пример 1 - Вставляет текст внутрь или снаружи первого тега <p> </p> и отображает HTML
#include <IE.au3>
Local $oIE = _IE_Example("basic") ; Открывает браузер с базовым примером
Local $oP = _IETagNameGetCollection($oIE, "p", 0)
_IEDocInsertText($oP, "(Текст перед началом)", "beforebegin")
_IEDocInsertText($oP, "(Текст после начала)", "afterbegin")
_IEDocInsertText($oP, "(Текст перед концом)", "beforeend")
_IEDocInsertText($oP, "(Текст после конца)", "afterend")
MsgBox(0, 'Вставлено рядом с <p>', _IEBodyReadHTML($oIE))
; ConsoleWrite(_IEBodyReadHTML($oIE) & @CRLF)
; ======================================
; Пример 2 - Вставляет в HTML в верхнюю и нижнюю части документа
#include <IE.au3>
$oIE = _IE_Example("basic")
Local $oBody = _IETagNameGetCollection($oIE, "body", 0)
_IEDocInsertText($oBody, "Этот текст вставлен после начала", "afterbegin")
_IEDocInsertText($oBody, "Обратите внимание, что <b>Теги</b> являются <кодированными> после отображаемого", "beforeend")
MsgBox(0, 'Сообщение', _IEBodyReadHTML($oBody))
; ======================================
; Пример 3 - Продвинутый пример
; Вставляет часы и referrer строку в верхнюю часть каждой страницы, даже при
; просмотре в новой location. Использует _IEDocInsertText, _IEDocInsertHTML и
; _IEPropertySet со свойствами "innerhtml" и "referrer"
#include <IE.au3>
$oIE = _IECreate("http://www.autoitscript.com")
AdlibRegister("UpdateClock", 1000) ; Обновляет часы один раз в секунду
; ожидание, пока окно браузера существует
While WinExists(_IEPropertyGet($oIE, "hwnd"))
Sleep(10000)
WEnd
Exit
Func UpdateClock()
Local $curTime = "<b>Текущее время: </b>" & @HOUR & ":" & @MIN & ":" & @SEC
; _IEGetObjByName is expected to return a NoMatch error after navigation
; (before DIV is inserted), so temporarily turn off notification
_IEErrorNotify(False)
Local $oAutoItClock = _IEGetObjByName($oIE, "AutoItClock")
If Not IsObj($oAutoItClock) Then ; Вставляет DIV-элемент, если он не был найден
; Получает объект-ссылку на BODY, вставляет DIV, получает объект-ссылку на DIV, обновляет время
Local $oBody = _IETagNameGetCollection($oIE, "body", 0)
_IEDocInsertHTML($oBody, "<div id='AutoItClock'></div>", "afterbegin")
$oAutoItClock = _IEGetObjByName($oIE, "AutoItClock")
_IEPropertySet($oAutoItClock, "innerhtml", $curTime)
; Check referrer string, if not blank insert after clock
_IELoadWait($oIE)
Local $sReferrer = _IEPropertyGet($oIE, "referrer")
If $sReferrer Then _IEDocInsertText($oAutoItClock, _
" Referred by: " & $sReferrer, "afterend")
Else
_IEPropertySet($oAutoItClock, "innerhtml", $curTime) ; Обновляет время
EndIf
_IEErrorNotify(True)
EndFunc ;==>UpdateClock