Функция _IEDocInsertHTML

 ↑  ←  Описание функции


_IEDocInsertHTML

Вставляет HTML-код внутрь или снаружи элемента.

#include <IE.au3>
_IEDocInsertHTML(ByRef $o_object, $s_string [, $s_where = "beforeend"])

Параметры

$o_object Переменная объекта, указывающей на элемент документа.
$s_string Вставляемая строка, содержащая HTML-код.
$s_where [необязательный] Указывает место вставки строки
beforebegin = Вставляет строку непосредственно перед объектом.
afterbegin = Вставляет строку после начала объекта, но перед всем содержимым в объекте.
beforeend = (по умолчанию) Вставляет строку непосредственно перед концом объекта, но после всего содержимого в объекте.
afterend = Вставляет строку непосредственно после конца объекта.

Возвращаемое значение

Успех:Возвращает 1
Ошибка:Возвращает 0 и устанавливает @error
@error:0 ($_IEStatus_Success) = Нет ошибок
3 ($_IEStatus_InvalidDataType) = Неверный тип данных
4 ($_IEStatus_InvalidObjectType) = Неверный тип объекта
5 ($_IEStatus_InvalidValue) = Неверное значение
@extended:Содержит номер неверного параметра

Примечания

Свойства innerHTML, outerHTML, innerText и outerText функции _IEPropertySet() могут быть использованы для динамической манипуляции вставляемым содержимым.

См. также

_IEDocInsertText, _IEPropertyGet, _IEPropertySet, _IEBodyReadHTML, _IEBodyWriteHTML, _IEDocReadHTML, _IEHeadInsertEventScript

Пример

#include <IE.au3>

; ======================================
; Пример 1 - Вставляет HTML-код в верхнюю и нижнюю части документа
Local $oIE = _IECreate("http://www.autoitscript.com")
Local $oBody = _IETagNameGetCollection($oIE, "body", 0)
_IEDocInsertHTML($oBody, "<h2>Этот HTML вставлен после начала</h2>", "afterbegin")
_IEDocInsertHTML($oBody, "<h2>Этот HTML вставлен перед концом</h2>", "beforeend")

; ======================================
; Пример 2 - Вставляет HTML-код внутрь или снаружи
;       тега DIV с именем "IEAu3Data" и отображает HTML
$oIE = _IE_Example("basic") ; Открывает браузер с базовым примером
Local $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)
MsgBox(0, 'Сообщение', _IEBodyReadHTML($oIE))

; ======================================
; Пример 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>Current Time is: </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