函数参考


_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标签内的内容,他们先被转换为可以显示的文字.通过_IEPropertySet的 innerHTML, outerHTML, innerText和outerText参数可以动态地处理插入的内容.

相关

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

示例/演示


; *******************************************************
; 示例 1 - 打开含基本示例页面的浏览器, 插入文本到
;       首个 Paragraph 标签内部和周围并显示 HTML 主体
; *******************************************************

#include <IE.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")

ConsoleWrite(_IEBodyReadHTML($oIE) & @CRLF)

; *******************************************************
; 示例 2 - 插入 HTML 到 document 的顶部和底部
; *******************************************************

#include <IE.au3>

$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")


; *******************************************************
; 示例 3 - 高级示例
;       当浏览新地址时在每页顶部插入一个时钟及一个引用字符串,
;       使用_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 会返回 NoMatch 错误
    ;   (插入 DIV 之前), 所以临时关闭通告
    _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)
        ;
        ; 检查引用字符串, 如果非空插入到时间后
        _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