UDF > IE >


_IEDocInsertText

Insère du texte dans un élément ou autour d'un élément

#include <IE.au3>
_IEDocInsertText ( ByRef $oObject, $sString [, $sWhere = "beforeend"] )

Paramètres

$oObject Variable objet qui pointe sur un élément du document.
$sString La chaîne de caractères contenant le texte à insérer.
$sWhere [optionnel] Spécifie le point d'insertion de la chaîne:
    "beforebegin" = Insère la chaîne immédiatement avant l'objet.
    "afterbegin" = Insère la chaîne après le début de l'objet mais avant tout autre contenu dans l'objet.
    "beforeend" = (par défaut) Insère la chaîne immédiatement avant la fin de l'objet, mais après tout autre contenu dans l'objet.
    "AfterEnd" = Insère la chaîne immédiatement après la fin de l'objet.

Valeur de retour

Succès: Retourne 1.
Échec: Retourne 0 et définit @error <> 0.
@error: 2 ($_IEStatus_COMError) - Erreur COM dans la référence d'un objet
3 ($_IEStatus_InvalidDataType) - Type de donnée invalide
4 ($_IEStatus_InvalidObjectType) - Type d'objet invalide
5 ($_IEStatus_InvalidValue) - Valeur invalide
@extended: Contient le nombre de paramètres invalides

Remarque

Dans le texte à insérer il y a des balises HTML, elles sont d'abord convertis afin qu'elles s'affichent sous forme de texte.
Les caractéristiques innerHTML, outerHTML, innerText et outerText de _IEPropertySet() peuvent être utilisées pour manipuler dynamiquement le contenu inséré.

En relation

_IEBodyReadHTML, _IEBodyWriteHTML, _IEDocInsertHTML, _IEDocReadHTML, _IEHeadInsertEventScript, _IEPropertyGet, _IEPropertySet

Exemple

Exemple 1

; Ouvre un navigateur avec la page exemple basique, insère du texte
; dans et autour la première balise Paragraph et affiche Body 

#include <IE.au3>
#include <MsgBoxConstants.au3>

Local $oIE = _IE_Example("basic")
Local $oP = _IETagNameGetCollection($oIE, "p", 0)

_IEDocInsertText($oP, "(Text beforebegin)", "beforebegin")
_IEDocInsertText($oP, "(Text afterbegin)", "afterbegin")
_IEDocInsertText($oP, "(Text beforeend)", "beforeend")
_IEDocInsertText($oP, "(Text afterend)", "afterend")

MsgBox($MB_SYSTEMMODAL, "Body", _IEBodyReadHTML($oIE) & @CRLF)

Exemple 2

; Insère de l'HTML au début et à la fin du document

#include <IE.au3>

Local $oIE = _IE_Example("basic")
Local $oBody = _IETagNameGetCollection($oIE, "body", 0)
_IEDocInsertText($oBody, "This Text is inserted After Begin", "afterbegin")
_IEDocInsertText($oBody, "Notice that <b>Tags</b> are <encoded> before display", "beforeend")

Exemple 3

; Exemple avancé
; Insère une horloge et une chaîne de référence en haut de chaque page, même quand vous
; naviguez vers un nouveau site. Utilisez les fonctions _IEDocInsertText, _IEDocInsertHTML et
; _IEPropertySet de "innerhtml" and "referrer"

#include <IE.au3>

Global $g_oIE = _IECreate("http://www.autoitscript.com")

AdlibRegister("UpdateStop", 1000) ; Mise à jour de l'horloge une fois par seconde

Global $bStop = False
While Not $bStop
    Sleep(10000)
WEnd
Exit

Func UpdateStop()
    ; Met à jour aussi longtemps que la fenêtre du navigateur existe
    $bStop = Not WinExists(_IEPropertyGet($g_oIE, "hwnd")) 
    If Not $bStop Then UpdateClock()
EndFunc   ;==>UpdateStop

Func UpdateClock()
    Local $sCurTime = "<font color=red><b>Heure courante : </b>" & @HOUR & ":" & @MIN & ":" & @SEC & "</font>"
    ; _IEGetObjById devrait retourner une erreur NoMatch après navigation
    ;   (avant que DIV soit inséré), aussi désactive temporairement les notification
    _IEErrorNotify(False)
    Local $oAutoItClock = _IEGetObjById($g_oIE, "AutoItClock")
    If Not IsObj($oAutoItClock) Then ; Insère l'élément DIV s'il n'a pas été trouvé
        ; 
        ; Obtient une référence sur BODY, insère DIV, obtient une référence sur DIV, met à jour l'horloge
        Local $oBody = _IETagNameGetCollection($g_oIE, "body", 0)
        _IEDocInsertHTML($oBody, "<div id='AutoItClock'></div>", "afterbegin")
        $oAutoItClock = _IEGetObjById($g_oIE, "AutoItClock")
        _IEPropertySet($oAutoItClock, "innerhtml", $sCurTime)
        ; 
        ; Teste la chaîne de référence, si elle n'est pas vide l'insère après l'horloge
        _IELoadWait($g_oIE)
        Local $sReferrer = _IEPropertyGet($g_oIE, "referrer")
        If $sReferrer Then _IEDocInsertText($oAutoItClock, _
                "  Referred by: <font color=red>" & $sReferrer & "</font>", "afterend")
    Else
        _IEPropertySet($oAutoItClock, "innerhtml", $sCurTime) ; Met à jour l'horloge
    EndIf
    _IEErrorNotify(True)
EndFunc   ;==>UpdateClock