Функция _IEHeadInsertEventScript

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


_IEHeadInsertEventScript

Вставляет Javascript в заголовок (Head) документа

#include <IE.au3>
_IEHeadInsertEventScript(ByRef $o_object, $s_htmlFor, $s_event, $s_script)

Параметры

$o_object Переменная объекта InternetExplorer.Application, объекта Окна или Фрейма (области)
$s_htmlFor Элемент HTML для мониторинга событий (например "document", "window" или ID элемента)
$s_event Событие для мониторинга (например "onclick" или "oncontextmenu")
$s_script Строка Javascript, которая будет выполнена

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

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

Примечания

Using ObjEvent, AutoIt is able to be notified of events via COM, but it manages them asynchronously (rather than synchronously as they are handled in the browser context). This routine allows you to inject code that is managed inside the browser context.

Обратите внимание, что элементы, которые не имеют назначенного ID все еще могут быть использованы путём получения их свойства "uniqueID", с помощью _IEPropertyGet

См. также

_IEDocInsertHTML, _IEPropertyGet, _IEDocInsertText

Пример

#include <IE.au3>

; ====================================
; Пример 1 - Открывает пример страницы "basic", вставляет
;               скрипт событий в заголовок (head) страницы, которая создаёт
;               уведомление JavaScript, когда кто-либо кликает на документе
;               После запуска примера кликните на странице, чтобы увидеть сообщение

$oIE = _IE_Example("basic")
_IEHeadInsertEventScript($oIE, "document", "onclick", "alert('Кто-то кликает на документе!');")

; ====================================
; Пример 2 - Открывает пример страницы "basic", вставляет
;               скрипт событий в заголовок (head) страницы, которая создаёт
;               уведомление JavaScript, когда кто-либо кликает правой кнопкой мыши на
;               документе. И далее событие скрипта возвращает "false", чтобы
;               предотвратить появление контекстного меню правой кнопкой мыши

$oIE = _IE_Example("basic")
_IEHeadInsertEventScript($oIE, "document", "oncontextmenu", "alert('Нет контекстного меню');return false")

; ====================================
; Пример 3 - Открывает пример страницы "basic", вставляет
;               скрипт событий в заголовок (head) страницы, которая создаёт
;               уведомление JavaScript, когда вы собираетесь уйти со страницы
;               и представляет возможность отменить операцию.

$oIE = _IE_Example("basic")
_IEHeadInsertEventScript($oIE, "window", "onbeforeunload", _
        "alert('Пример последующего предупреждения...');return 'В процессе действия изменения могут быть потеряны';")
_IENavigate($oIE, "www.autoitscript.com")

; ====================================
; Пример 4 - Открывает пример страницы "basic", вставляет
;               скрипт событий в заголовок (head) страницы, которая
;               предотвращает выделение текста в документе

$oIE = _IE_Example()
_IEHeadInsertEventScript($oIE, "document", "ondrag", "return false;")
_IEHeadInsertEventScript($oIE, "document", "onselectstart", "return false;")

; ====================================
; Пример 5 - Открывает страницу AutoIt, вставляет
;               скрипт событий в заголовок (head) страницы, которая
;               предотвращает навигацию,при любом клике на ссылке
;               и отправляет кликнутые URL в консоль

$oIE = _IECreate("http://www.autoitscript.com")
$oLinks = _IELinkGetCollection($oIE)
For $oLink In $oLinks
    $sLinkId = _IEPropertyGet($oLink, "uniqueid")
    _IEHeadInsertEventScript($oIE, $sLinkId, "onclick", "return false;")
    ObjEvent($oLink, "_Evt_")
Next

While 1
    Sleep(100)
WEnd

Func _Evt_onClick()
    Local $o_link = @COM_EventObj
    ConsoleWrite($o_link.href & @CRLF)
EndFunc   ;==>_Evt_onClick