Funktionreferenz


_IEHeadInsertEventScript

Beschreibung anzeigen in

Fügt ein JavaScript innerhalb des <HEAD>-Abschnittes in das Dokument ein

#include <IE.au3>
_IEHeadInsertEventScript ( ByRef $oObject, $sHTMLFor, $sEvent, $sScript )

Parameter

$oObject Objekt Variable einer InternetExplorer.Application, eines Window- oder eines Frameobjekts.
$sHTMLFor Das HTML Element, für das das Ereignis überwacht werden soll (z.B. "document", "windows" oder eine Element-ID)
$sEvent Das Event, auf den das Skript reagieren soll (z.B. "onClick" oder "onContextMenu")
$sScript Auszuführendes Javascript

Rückgabewert

Erfolg: 1.
Fehler: 0 und setzt das @error Flag auf ungleich null.
@error: 2 ($_IEStatus_COMError) - COM Error in Objektreferenz
3 ($_IEStatus_InvalidDataType) - Ungültiger Datentyp
@extended: Beinhaltet Nummer des ungültigen Parameters

Bemerkungen

Mit ObjEvent() wird AutoIt über Ereignisse via COM benachrichtigt. Diese werden aber asynchron und nicht wie im Browser synchron behandelt.
Diese Routine erlaubt es Code einzufügen, der innerhalb des Browserkontextes behandelt wird.

Es ist zu beachten, dass Elemente, die keine ID zugewiesen bekommen haben, mit ihrer "uniqueID"-Eigenschaft mit _IEPropertyGet() verwendet werden können.

Verwandte Funktionen

_IEDocInsertHTML, _IEDocInsertText, _IEPropertyGet

Beispiel

Beispiel 1

#include <IE.au3>

; Öffnet einen Browser mit der Grundlagen-Beispiel-Seite.
; Fügt ein Event-Script in den Header des Dokuments ein, welches einen JavaScript-Alarm auslöst, wann immer auf das Dokument geklickt wird.

Local $oIE = _IE_Example("basic")
_IEHeadInsertEventScript($oIE, "document", "onclick", "alert('Jemand hat auf das Dokument geklickt!');")

Beispiel 2

#include <IE.au3>

; Öffnet einen Browser mit der Grundlagen-Beispiel-Seite.
; Fügt ein Event-Script in den Header des Dokuments ein, welches einen JavaScript Alarm auslöst, wann immer auf das Dokument ein Rechtsklick ausgeführt wird.
; In diesem Fall soll das Event-Script "False" zurückgeben, um zu verhindern, dass das Rechtsklick-Kontextmenü aufgerufen wird.

Local $oIE = _IE_Example("basic")
_IEHeadInsertEventScript($oIE, "document", "oncontextmenu", "alert('Kein Kontextmenü');return false")

Beispiel 3

#include <IE.au3>

; Öffnet einen Browser mit der Grundlagen-Beispiel-Seite,
; fügt ein Event-Script in den Header des Dokuments ein, welches einen JavaScript Alarm auslöst,
; wenn man die Seite verlassen will und die Möglichkeit des Abbruchs der Aktion anbietet.

$oIE = _IE_Example("basic")
_IEHeadInsertEventScript($oIE, "window", "onbeforeunload", _
        "alert('Beispiel-Warnung folgt...');return 'Änderungen könnten verloren gehen!';")
_IENavigate($oIE, "www.autoit.de")

Beispiel 4

#include <IE.au3>

; Öffnet einen Browser mit der Grundlagen-Beispiel-Seite,
; Fügt ein Event-Script in den Header des Dokuments ein, welches verhindert, dass
; das Text in dem Dokument markiert werden kann

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

Beispiel 5

#include <IE.au3>

; Öffnet den Browser mit der AutoIt Homepage
; Fügt ein Event-Script in den Header des Dokuments ein, welches verhindert, dass
; ein angeklickter Link geladen wird und schreibt die URL des angeklickten Links in die Konsole

Opt("TrayIconDebug", 1)

Local $oIE = _IECreate("http://www.autoitscript.com")

Local $oLinks = _IELinkGetCollection($oIE)
For $oLink In $oLinks
    Local $sLinkId = _IEPropertyGet($oLink, "uniqueid")
    If @error Then Exit
    _IEHeadInsertEventScript($oIE, $sLinkId, "onclick", "return false;")
    If @error Then Exit
    ObjEvent($oLink, "_Evt_")
Next

; wartet so lange bis das Browser-Fenster existiert
While WinExists(_IEPropertyGet($oIE, "hwnd"))
    Sleep(100)
WEnd

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